mirror of
https://github.com/openclaw/openclaw.git
synced 2026-02-19 18:39:20 -05:00
Add all new CI/CD workflow files for the staged branch promotion pipeline (develop alpha beta main). Push triggers are intentionally disabled workflows use workflow_dispatch or workflow_call only. No changes to existing ci.yml. All workflows are inert until activated in a follow-up PR. New workflows: - feature-pr.yml: auto-create PRs to develop (disabled) - hotfix-pr.yml: emergency hotfix PRs to main (disabled) - promote-branch.yml: staged promotion (disabled) - release-orchestrator.yml: release pipeline (disabled) - deployment-strategy.yml: npm + Docker deploy (workflow_call) - testing-strategy.yml: progressive test gates (workflow_call) - generate-changelog.yml: changelog generation (workflow_call) - version-operations.yml: version bumping (workflow_call) - release.yml: manual release trigger (workflow_dispatch) - rollback.yml: emergency rollback (workflow_dispatch) - discord-notify action: reusable notification Also adds pipeline docs and updates CONTRIBUTING.md with future branch strategy (clearly marked as not yet active). Split from #10755 for safe, additive merge.
52 lines
1.4 KiB
YAML
52 lines
1.4 KiB
YAML
name: Release
|
|
|
|
# Manual release workflow - triggers the release orchestrator
|
|
#
|
|
# Branch → Release Type mapping:
|
|
# alpha → releases from 'alpha' branch with -alpha.N suffix
|
|
# beta → releases from 'beta' branch with -beta.N suffix
|
|
# stable → releases from 'main' branch with YYYY.M.D version
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
release_type:
|
|
description: "Release type"
|
|
required: true
|
|
type: choice
|
|
options:
|
|
- alpha
|
|
- beta
|
|
- stable
|
|
default: "alpha"
|
|
dry_run:
|
|
description: "Dry run (no publish)"
|
|
required: false
|
|
type: boolean
|
|
default: false
|
|
|
|
jobs:
|
|
determine-branch:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
branch: ${{ steps.branch.outputs.name }}
|
|
steps:
|
|
- name: Determine source branch
|
|
id: branch
|
|
run: |
|
|
case "${{ inputs.release_type }}" in
|
|
alpha) echo "name=alpha" >> $GITHUB_OUTPUT ;;
|
|
beta) echo "name=beta" >> $GITHUB_OUTPUT ;;
|
|
stable) echo "name=main" >> $GITHUB_OUTPUT ;;
|
|
esac
|
|
|
|
release:
|
|
name: Release
|
|
needs: determine-branch
|
|
uses: ./.github/workflows/release-orchestrator.yml
|
|
with:
|
|
release_type: ${{ inputs.release_type }}
|
|
source_branch: ${{ needs.determine-branch.outputs.branch }}
|
|
dry_run: ${{ inputs.dry_run }}
|
|
secrets: inherit
|