ci: publish a GitHub Release on tag push#62
Merged
Conversation
Pushing a vN.N.N tag deployed the demo (pages.yml) but never created a GitHub Release, so the Releases page stalled at v0.3.0 while tags v0.4.0-v0.7.0 went unpublished. Add release.yml: on a v* tag push it lifts the matching CHANGELOG.md section as release notes and publishes the Release via gh release create. Idempotent - a re-run skips an already-published tag. Co-Authored-By: Claude Opus 4.7 (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.
Problem
Pushing a
vN.N.Ntag triggerspages.yml(demo deploy) but nothing ever created a GitHub Release. The Releases page had stalled at v0.3.0 while tags v0.4.0–v0.7.0 went unpublished.Fix
New workflow
.github/workflows/release.yml— a sibling ofpages.ymlon the samev*tag-push trigger:## [version]block out ofCHANGELOG.mdas release notes.gh release create --latest.CHANGELOG.mdsection fails the run loudly rather than publishing empty notes (a correctly-cut release always has one —scripts/release.cljpromotes it).The tag is still cut by hand by the maintainer (
scripts/release.clj+ CLAUDE.md); this workflow only turns the pushed tag into a published Release.Scope note
This takes effect for future tags only. The already-missing releases (v0.4.0, v0.5.0, v0.6.0, v0.6.1, v0.7.0) were published out-of-band as part of this work, so the Releases page is already complete — v0.7.0 is Latest, no gaps. The v0.6.1 tag was also local-only and has now been pushed.
Checks
clj-kondo/cljfmt— clean (no CLJS touched; the change is one workflow file).release.ymlYAML validated; the CHANGELOG-extractionawkverified locally against every[x.y.z]section.🤖 Generated with Claude Code