singularity-forge/docs/dev/proposals/workflows/create-release.yml
ace-pm 35dc87ef53 chore: sync workspace state after rebrand
- Rebrand commits already in history (gsd → forge)
- Sync pre-existing doc, docker, and CI config updates
- All rebrand artifacts verified in place:
  * Native crates: forge-engine, forge-ast, forge-grep
  * Log prefixes: [forge] across 22+ files
  * Binary: ~/bin/sf-run
  * Workspace scopes: @sf-run/*, @singularity-forge/*
  * Nix flake: Rust toolchain ready

System ready for: nix develop && bun run build:native

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 14:54:20 +02:00

69 lines
2.3 KiB
YAML

# ⚠️ SCAFFOLD ONLY — not active. See docs/proposals/rfc-gitops-branching-strategy.md
name: Create Release Branch
on:
workflow_dispatch:
inputs:
version:
description: "Release version (e.g., 2.34)"
required: true
type: string
jobs:
create-release:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v6
with:
ref: next
fetch-depth: 0
token: ${{ secrets.RELEASE_PAT }}
- name: Validate version format
run: |
if ! echo "${{ inputs.version }}" | grep -qE '^[0-9]+\.[0-9]+$'; then
echo "::error::Version must be X.Y format (e.g., 2.34)"
exit 1
fi
if git show-ref --verify --quiet "refs/remotes/origin/release/${{ inputs.version }}"; then
echo "::error::release/${{ inputs.version }} already exists"
exit 1
fi
- name: Create release branch
run: |
BRANCH="release/${{ inputs.version }}"
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git checkout -b "$BRANCH"
git push origin "$BRANCH"
echo "## Created \`$BRANCH\` from \`next\` at $(git rev-parse --short HEAD)" >> "$GITHUB_STEP_SUMMARY"
- name: Open tracking issue
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh issue create \
--title "Release v${{ inputs.version }}.0" \
--label "release" \
--body "## Release v${{ inputs.version }}.0
**Release branch:** \`release/${{ inputs.version }}\`
**Created from:** \`next\` at \`$(git rev-parse --short HEAD)\`
**Created by:** @${{ github.actor }}
### Checklist
- [ ] All targeted fixes merged to \`release/${{ inputs.version }}\`
- [ ] RC published and smoke-tested (\`npm i sf-run@rc\`)
- [ ] CHANGELOG reviewed
- [ ] Production deployment approved
### Post-Release
- [ ] \`release/${{ inputs.version }}\` merged to \`main\`
- [ ] Tag \`v${{ inputs.version }}.0\` created
- [ ] \`@latest\` promoted
- [ ] Back-merged to \`next\`"