name: release description: Release workflow — bump version, merge develop to main, tag, and push. Ensures all PRs are merged and CI passes before releasing.
Release Workflow
Use /release when cutting a new release from develop to main.
Pre-Flight Checks
Confirm branch: Must be on
develop.git branch --show-current # Must show: developCheck for open PRs targeting develop:
gh pr list --base develop --state openIf any are open, STOP — merge or close them first.
Verify CI passes on develop:
gh run list --branch develop --limit 1Show what's new since last release:
git log main..develop --onelinePresent the changelog to the user for review.
Release Steps
Bump version in package.json:
- Ask user: "What version? (current: X.Y.Z)" — offer patch, minor, major
- Update
versionfield inpackage.json - Commit:
chore: bump version to X.Y.Z
Push develop with version bump:
git push origin developMerge develop into main (no fast-forward):
git checkout main git pull origin main git merge develop --no-ff -m "release: vX.Y.Z"Create git tag:
git tag vX.Y.ZPush main and tags:
git push origin main git push origin vX.Y.ZVerify CI/CD pipeline starts:
gh run list --branch main --limit 1Switch back to develop:
git checkout develop
Rules
- Never commit version bumps to feature branches
- Never skip the open PR check (step 2)
- Always use
--no-fffor the merge to create a merge commit - Always tag on main, never on develop
- Wait for user approval before pushing (steps 6 and 9)
Rollback
If something goes wrong after push:
# Delete the tag
git tag -d vX.Y.Z
git push origin :refs/tags/vX.Y.Z
# Reset main to previous commit
git checkout main
git reset --hard HEAD~1
git push --force-with-lease origin main
Only use rollback with explicit user approval.