feat(release): /publish refuses to tag a main commit whose ci run is red, pending or missing - #54
Merged
Merged
Conversation
…red, pending or missing Closes #53 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…e's wording Co-Authored-By: Claude Opus 5 (1M context) <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.
Closes #53
What
/publish's preflight now reads thecirun of the commitorigin/mainnames (gh run list --workflow ci.yml --event push --branch main --commit <sha> --limit 1 --json databaseId,status,conclusion,url) and stops, naming the run, unless it exists, iscompletedand concludedsuccess:cinever ran for that commit - say so, never tag it;completed(queued,in_progress,waiting, ...): offergh run watch, preflight again once done;success(failure,cancelled,timed_out, ...): point atgh run view --log-failed; recovery is a fix merged tomainor, for a transient cause,gh run rerun --failed, then the preflight again once green.The "Releases" section of AGENTS.md names the new condition. The gate lives in the command only:
release.ymlis unchanged (it never checkedci, and still does not - the command says so).Why
mainat e2b4032 has a redcirun (https://github.com/using-system/oddyssey-actions/actions/runs/35471779837 - a transientcurl: (35) Connection reset by peerfetching the Claude Code manifest insetup-claude), and/publishwould have tagged it: it checked the last release run, never thecirun of the commit about to ship.Amendments to the issue
Recorded on #53: CONTRIBUTING.md is left unchanged (it never describes
/publish), and the query carries--event pushso apull_requestrun of a head branch namedmainon the same commit never stands in for the push run.Review
Review subagent and security review both green after one round (dash placement, "URL when there is one", the
cancelledcase re-fetches before saying "by hand", the deviation recorded on the issue). actionlint, shellcheck, ruff, pytest (221 passed) green locally; no script or workflow is touched.🤖 Generated with Claude Code