Repository navigation
Releases: create the release from a tag workflow that checks the commit and the CHANGELOG - #139
Merged
Merged
Conversation
New .github/workflows/release.yml, run on a pushed tag v* and by hand as a dry run (inputs sha, version). The verify job (contents, actions and checks read only) refuses unless the tag is vX.Y.Z and equals the plugin.json version at the commit, the commit is on main, it has a successful check "required" from a pull_request run of ci.yml (scripts/release-green.sh, ported from obsbot4linux) and CHANGELOG.md has a non-empty section for the version (scripts/release-notes.sh). Only the release job has contents: write; it runs after verify, on tag pushes only, and the CHANGELOG section is the release notes. The dry run prints the release and creates nothing. README gets a short "Releasing" section; CHANGELOG an Unreleased line. Fixes #138 Co-Authored-By: Claude Sonnet 5.5 <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.
What changed
.github/workflows/release.yml: runs on a pushed tagv*and creates the GitHub release itself. Jobverify(read-only: contents, actions, checks) refuses unlessvX.Y.Zand equalsversioninplugin.jsonat the tagged commit,main,requiredfrom apull_requestrun ofci.yml(scripts/release-green.sh, ported from obsbot4linux),CHANGELOG.mdhas a non-empty section for the version (scripts/release-notes.sh).Job
release(the only one withcontents: write) runs afterverify, on tag pushes only, and uses that CHANGELOG section as the notes (same form as v0.29.0 / v0.29.1). If a check fails no release is created.workflow_dispatchdry run with inputsshaandversion: runs every check, prints the release it would create, creates nothing.ci.yml; shellcheck passes onscripts/*.sh.Proof (scripts run locally against real data)
The workflow itself cannot be dispatched before it is on
main; the dry run on GitHub is done after landing.Fixes #138