feat(release): auto-dispatch binary build when a release PR merges#396
Merged
Conversation
Closes the Path B gap surfaced by v0.5.121: 'just ship' opened and
auto-merged the release PR, but binaries required a second manual step
('just release-tag') that was forgotten — while the ship banner still
promised 'GitHub Actions will produce binaries' on merge.
New release-auto-trigger.yml fires on pull_request:closed into main,
and only when the PR merged AND its head branch is release/v* (the
branch shape only the ship flow creates) — so the Path B guarantee
that a normal merge triggers no release is preserved. It validates the
version and dispatches release.yml via workflow_dispatch (the same
path every release since v0.5.114 has used; GITHUB_TOKEN dispatches do
create runs, unlike the R4 tag-push anti-loop case).
just release-tag stays as the documented manual fallback for re-cuts
or a failed dispatch. Path B comment block + version-bump hint in
just/build.just updated; deviation row appended to
release-automation-plan §8.
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
Closes the Path B gap surfaced by v0.5.121:
just shipopened and auto-merged the release PR, but no binaries were built — Path B requires a second manual step (just release-tag) that was forgotten, while the ship completion banner still promised "GitHub Actions will produce binaries" on merge.release-auto-trigger.yml: onpull_request: closedintomain, when the PR merged AND its head branch isrelease/v*(the shape onlyjust ship/just release-prcreates), validate the version and dispatchrelease.yml. Zero workflow permissions exceptactions: writeon the single job.mainstill triggers no release — the predicate keys on the release branch name.just release-tagdemoted to documented manual fallback (re-cuts / failed dispatch); Path B comment block andversion-bumphint injust/build.justupdated to match reality.release-automation-plan.md§8 per append-only discipline (v0.5.121 itself was dispatched by hand, run 27422916912, before this landed).Why dispatch instead of tag-push: GITHUB_TOKEN
workflow_dispatchcalls do create runs — unlike the tag-push anti-loop case that bit R4 — and every release since v0.5.114 has gone through the dispatch path anyway (release.yml creates the tag itself).Test plan
cargo cleanfirst — target/ was poisoned by the 06-08→06-12 nightly bump, the known fix(toolchain): invalidate target/ + sccache after a nightly bump #384 failure mode)^v\d+\.\d+\.\d+$guards the dispatchjust shipcycle: merge should produce a release.yml run withtriggered_by=release-pr-merge-#<PR>🤖 Generated with Claude Code