Repository navigation
Feature: automated release pipeline and changelog gate - #101
Merged
Merged
Conversation
Cutting a release took a version bump committed straight onto main, a hand pushed tag, and a release page written by hand. The default branch now requires a pull request, so the bump only lands by bypassing the rule, and the page has been forgotten once. Add a dispatched prep workflow that dates the changelog section, writes the compare link, bumps api/package.json and moves the demo pin, then opens a pull request. Merging it tags the release, and the tag build publishes the release page from the same changelog section. Add scripts/changelog-check.js to the shared checks: structure fails, style warns on [Unreleased] only. Authenticate the prep, the tag and the page as a GitHub App, since GITHUB_TOKEN cannot push to the protected branch and anything it creates starts no workflow run.
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
scripts/changelog.js,changelog-check.js,release-prep.jsandrelease-notes.js: a shared parser, a structure gate with advisory style warnings, the release file edits, and notes extraction for a release page.changelog-check.jsin the shared checks action, and again with--releaseon the release path so the changelog,api/package.jsonand therender.yamldemo pin must name one version.release-prep.yml, dispatched with a version, which prepares the four files and opens aRelease: X.Y.Zpull request.release-tag.yml, which tagsvX.Y.Zwhen a merge to main lands a version the changelog already describes as released, skipping an existing tag.release-pagejob torelease.ymlthat publishes the page from the changelog section after the image is pushed, with--verify-tagand prerelease classification.RELEASE_APP_IDandRELEASE_APP_PRIVATE_KEY;GITHUB_TOKENis left with no scope in those workflows.docs/releasing.mdand the new check inCONTRIBUTING.md.Testing
All green. Added 20 tests across two files: changelog parsing, nine structural mutations that must fail the gate, the prep and notes transforms, and the workflow wiring that the automation depends on.
Checklist