Repository navigation
Cut a patch release on the 1st of each month - #544
Merged
Merged
Conversation
A scheduled workflow tags the next patch version when main is green, something has merged since the last tag and no pull request labelled breaking was merged. It dispatches release.yml and publish.yml on the new tag, since a tag created with GITHUB_TOKEN doesn't start them. Scheduled runs are dry runs until the MONTHLY_RELEASE variable is true. Closes git-pkgs#532
andrew
approved these changes
Oct 22, 2026
andrew
left a comment
Contributor
There was a problem hiding this comment.
One thing to follow up on: in monthly-release.yml the green check passes when main's HEAD has no check runs at all, since bad is just empty. A [skip ci] commit at HEAD would get tagged and published untested. Requiring at least one completed successful test/lint run before tagging would close that.
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.
Closes #532.
Adds
monthly-release.yml, which runs at 06:00 UTC on the 1st and can be started by hand. It tags the next patch version and startsrelease.ymlandpublish.ymlon the tag when:vX.Y.Ztag,main's HEAD finished green,breakingwas merged since that tag.Otherwise it logs why it skipped. A tag created with
GITHUB_TOKENdoesn't start other workflows, so the release workflows are dispatched on the tag instead.release.ymlgetsworkflow_dispatchfor that, and only runs on a tag ref. No new secret.Dry run first. Scheduled runs only log what they would release until the repository variable
MONTHLY_RELEASEistrue. Manual runs default to a dry run.Answers to the open questions in #532, as defaults that are easy to change:
workflow_dispatchinstead of a GitHub App token.breakinglabel doesn't exist yet and needs to be created. CONTRIBUTING.md now says when to use it.Tested locally against this repo: the decision step picks
v0.10.1for currentmain, and skips when checks aren't green. The breaking-label search was checked against past merges. actionlint and zizmor report nothing.