ci: Add tag-triggered release workflow#4
Merged
Merged
Conversation
Bumping the version, committing, and tagging \`vx.y.z\` should be the entire release ritual — the rest is mechanical. Add \`.github/workflows/release.yml\` that fires on \`v*\` tag pushes, runs \`make dist\` on a macos-14 runner, and creates a GitHub Release with the DMG attached. Release notes use \`gh release create --generate-notes\`, which derives them from PR titles merged since the previous tag (same algorithm as the "Generate release notes" button in the GitHub UI). This removes the manual \`make dist\` + \`gh release create\` steps from the release flow entirely. The workflow needs \`contents: write\` to create the release; no other permissions or secrets are required since \`GITHUB_TOKEN\` covers the release API surface.
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
.github/workflows/release.ymlthat fires onv*tag pushes and publishes a GitHub Release with the bundled DMG.gh release create --generate-notes).contents: writepermission; uses the defaultGITHUB_TOKEN, no extra secrets.After merge the release ritual collapses to:
CI on
macos-14picks up the tag, runsmake dist, and creates the Release. No localmake distorgh release createstep needed anymore.Test plan
ghinvocation