fix: fail early when a tag predates the release tooling - #103
Merged
Conversation
The first dispatch of release.yml against v1.9.0 died at "Fetch the Piper voices" with a bare "Process completed with exit code 127". The tag was pushed before the workflow existed, so the checked-out tree had no scripts/fetch-voices.sh -- but nothing in the run said so, and the cause took a local `git ls-tree v1.9.0 scripts/` to find. Check for the tooling right after checkout, before setup-python, and name what is missing. This is a one-time bootstrap problem (every tag from here on carries the workflow that builds it), but the same failure returns whenever someone tags an older commit, and the 127 is no more readable the second time. The check covers the PYTHON override in build-deb.sh as well as the two new files: an older tree has a build-deb.sh that ignores $PYTHON and would fail a step later, on a runner that has neither a .venv nor a python3.13 on PATH. Co-Authored-By: Claude Opus 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.
Why
The first dispatch of
release.ymlagainstv1.9.0failed at "Fetch the Piper voices" with nothing butProcess completed with exit code 127. The tag was pushed before the workflow existed, so the checked-out tree had noscripts/fetch-voices.sh— but the run never said that, and finding it took a localgit ls-tree v1.9.0 scripts/.What
A guard right after checkout, before
setup-python, so it costs a few seconds and names what is missing:It covers the
PYTHONoverride inbuild-deb.shas well as the two new files. An older tree has abuild-deb.shthat ignores$PYTHONand would have failed a step later anyway, on a runner with neither a.venvnor apython3.13onPATH.grep -qFso${PYTHON:-}matches literally. Single braces, so GitHub does not interpolate it.This is a one-time bootstrap problem — every tag from here on carries the workflow that builds it — but the same failure comes back whenever someone tags an older commit, and the 127 is no more readable the second time.
Verification
Extracted the step body and ran it against two trees:
main— exit 0git archive 41b328d(the treev1.9.0pointed at before it was moved) — exit 1, listing all three missing piecesv1.9.0has since been moved to2db28fb, so the release run triggered by that tag push is unaffected by this change; it already has the tooling.🤖 Generated with Claude Code