Skip to content

ci: add Cut Release workflow for patch/minor/major cuts#87

Merged
santiagomed merged 1 commit into
mainfrom
feat/cut-release-workflow
Jul 16, 2026
Merged

ci: add Cut Release workflow for patch/minor/major cuts#87
santiagomed merged 1 commit into
mainfrom
feat/cut-release-workflow

Conversation

@santiagomed

Copy link
Copy Markdown
Collaborator

Summary

  • Adds Actions → Cut Release (workflow_dispatch) to automate a release cut from main
  • Promotes CHANGELOG.md ## Unreleased## vX.Y.Z - <date>, opens a release PR (required by branch protection), tags after merge, then publishes (GitHub release, Homebrew, npm)
  • Helper script scripts/cut_release.py (+ unit tests) resolves the next semver and rewrites the changelog
  • Publish runs in this workflow because tag pushes with GITHUB_TOKEN do not trigger the existing tag-based Release workflow

Usage

# dry-run (no PR/tag/publish)
gh workflow run "Cut Release" -f bump=patch -f dry_run=true

# cut a patch from main
gh workflow run "Cut Release" -f bump=patch

# explicit version
gh workflow run "Cut Release" -f version=1.2.3

# after a release PR is approved+merged manually
gh workflow run "Cut Release" -f version=1.2.3 -f skip_changelog=true

Test plan

  • python3 -m unittest cut_release_test in scripts/
  • python3 scripts/cut_release.py --bump patch --dry-run against current main
  • Merge this PR, then Actions → Cut Release → dry_run=true
  • (optional) Run a real patch cut when ready to ship v1.2.3

Add a workflow_dispatch pipeline that promotes CHANGELOG Unreleased notes,
opens a release PR (main is protected), tags after merge, and publishes via
GoReleaser + npm. Includes a small Python helper with unit tests.
@santiagomed
santiagomed merged commit 9785821 into main Jul 16, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants