Dispatch a release using GitHub Actions. Use when asked to create a release, publish to npm, or start the release process.
The Cartridge Controller uses a two-phase release process:
| Type | Tag | Use Case |
|---|---|---|
latest |
Production | Stable releases for general use |
prerelease |
Beta/RC | Testing releases before stable |
Follow semantic versioning:
Check current version:
jq -r '.version' packages/controller/package.json
# For a production release
gh workflow run release-dispatch.yml \
-f version="X.Y.Z" \
-f tag="latest"
# For a prerelease
gh workflow run release-dispatch.yml \
-f version="X.Y.Z-beta.1" \
-f tag="prerelease"
# Watch the workflow run
gh run watch
# Or list recent runs
gh run list --workflow=release-dispatch.yml
The workflow creates:
# Find the PR
gh pr list --head prepare-release
# or
gh pr list --head prepare-prerelease
# Review the PR
gh pr view <PR_NUMBER>
The changelog will be auto-generated by the changelog-generation.yml workflow.
Once the release PR is reviewed and approved:
gh pr merge <PR_NUMBER> --merge
This triggers release.yml which:
@cartridge/controller, @cartridge/connector)After merge, verify:
# Check npm
npm view @cartridge/controller version
npm view @cartridge/connector version
# Check GitHub releases
gh release list --limit 5
# View specific release
gh release view v<VERSION>
| File | Purpose |
|---|---|
release-dispatch.yml |
Initiates release, creates PR and draft release |
changelog-generation.yml |
Auto-generates changelog for release PRs |
release.yml |
Publishes to npm when release PR merges |
If you need to cancel before merge:
# Close the PR without merging
gh pr close <PR_NUMBER>
# Delete the draft release
gh release delete v<VERSION> --yes
For urgent fixes:
If npm publish fails:
release.yml workflow logsrelease.ymlgh workflow run release.yml
# 1. Check current version
jq -r '.version' packages/controller/package.json
# Output: 0.9.5
# 2. Dispatch next minor version
gh workflow run release-dispatch.yml -f version="0.10.0" -f tag="latest"
# 3. Wait for PR creation
sleep 30
gh pr list --head prepare-release
# 4. Review changelog (auto-generated)
gh pr view --web # Opens in browser
# 5. After review, merge
gh pr merge --merge
# 6. Verify publication
npm view @cartridge/controller version
# Output: 0.10.0
contents: write and pull-requests: writeNPM_TOKEN secret)CREATE_PR_TOKEN secret for PR creation