ci(release): manual workflow_dispatch release pipeline#7
Merged
Conversation
Releasing a new version is now a deliberate manual action instead of firing on a tag/branch push. The release workflow runs only via `workflow_dispatch` (the Actions tab, `gh workflow run`, or `make release VERSION=vX.Y.Z`), takes the version as an input, and runs the full pipeline: validate → CI gate → cross-platform binaries → publish all 7 npm packages → tag + GitHub Release. - release.yml: replace the push (main + tags) triggers with workflow_dispatch + a required `version` input; drop the rolling "latest" pre-release; version comes from the input (passed via env to avoid shell injection). The GitHub release/tag is created only after npm publishing succeeds. - Makefile: `make release VERSION=vX.Y.Z` now dispatches the workflow (`gh workflow run release.yml --field version=…`) instead of pushing a tag. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Makes shipping a new version a deliberate, manual action. The release workflow no longer fires on push (tag or
main) — it runs only viaworkflow_dispatch, takes the version as an input, and runs the complete pipeline end-to-end.How to release now
From the Actions tab → release → Run workflow (enter
vX.Y.Z), or:gh workflow run release.yml --field version=v0.1.3 # convenience wrapper: make release VERSION=v0.1.3Pipeline (one manual run)
validate version → CI gate (Go + mcp-server tests) → cross-platform binaries → publish all 7 npm packages (launcher + 5 platform binaries + csdd-mcp, same version) → tag the commit + GitHub Release.Changes
.github/workflows/release.ymlon: push(main + tags) →on: workflow_dispatchwith a requiredversioninput.mainpushes; releasing is now fully manual).validatejob rejects anything that isn'tvX.Y.Z.releaseneedsnpm-publish), so a failed publish never leaves a dangling tag/release.Makefile—make release VERSION=vX.Y.Znow dispatches the workflow (gh workflow run release.yml --field version=…) instead of pushing a tag.Notes
make release/gh workflow run release.ymlonly work after this PR merges (aworkflow_dispatchworkflow must exist on the default branch to be dispatchable).NPM_TOKENto be an Automation token (otherwise it fails withEOTP, as thev0.1.2attempt did).🤖 Generated with Claude Code