ci: auto-tag & release on merge to main; add release PR template + CHANGELOG#5
Merged
Conversation
…ANGELOG - release.yml: trigger on push to `main`; read version from manifest.json and, if not already released, push the bare-version tag and publish the release in the same job. Idempotent — version-less merges (CI/docs) are a no-op. Removes the manual tag-push step. - Add a named release PR template (.github/PULL_REQUEST_TEMPLATE/release.md) for dev->main release PRs. - Add CHANGELOG.md (Keep a Changelog) with the 1.1.1 entry. - CONTRIBUTING: rewrite the releasing section for the automatic flow. Co-Authored-By: Claude Opus 4.8 <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
Prepares the release pipeline and makes releases automatic on merge to
main.release.ymlnow triggers on push tomain: it reads the version frommanifest.jsonand, if that version isn't already released, pushes thebare-version tag and publishes the GitHub release (artifacts:
main.js,manifest.json,styles.css) — all in one job. Tag + release happen together,so we don't depend on a tag push triggering a second workflow (a
GITHUB_TOKENtag push wouldn't). It's idempotent: a merge that doesn't bump the version
(CI/docs) finds the tag already present and does nothing. The manual
git tag && git pushstep is gone..github/PULL_REQUEST_TEMPLATE/release.md) fordev → mainrelease PRs (open via?expand=1&template=release.md).CHANGELOG.md(Keep a Changelog) seeded with the1.1.1entry.Activation note
This new
release.ymlonly takes effect once it reachesmain(via the nextdev → mainmerge). That activation merge is a no-op for releases —manifestis still
1.1.1, which is already released, so the guard skips. From then on,any
dev → mainmerge that bumps the version auto-tags and releases.Type of change
How was this tested?
node --check main.jsandnode scripts/validate.mjspass;validateCI runson this PR. The release job's guard is dry by construction (skips when the
version is already released).