Repository navigation
The release script waits for the GitHub Release to be published - #215
Merged
Merged
Conversation
The release script now finishes when the release workflow run for the tag has succeeded, printing the run's URL while it waits and the GitHub Release's URL at the end. A failed run exits 1 naming the failed jobs and suggesting gh run rerun --failed, leaving the tag in place. A rerun that finds the tag on the merge of the bump PR picks up from that run instead of stopping. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Prints a line while waiting for the release workflow run to be listed, leaves the failed-jobs parenthesis out when no job is named, derives the test's Release URL from REPO, and maps the fake's run list --jq to its line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
JacobStephens2
added a commit
that referenced
this pull request
Sep 30, 2026
main's release script now waits for the release workflow run (#215), which taught the Python fake gh `run list --commit`, `run view`, `release view`, run attempts and $FAKE_MERGE_HEAD/$FAKE_MERGE_SHA. issue-174 replaced that fake with tests/fakes/gh.rs, so those changes are ported there and the Python fake stays deleted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
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
The release script now finishes when the release workflow run for the tag has succeeded, not when the tag is pushed.
CI's run on
mainfor the same merge commit is not waited for. The fakeghnow models release workflow runs: not yet listed (hidden_polls), in progress (pending_polls), jobs, a rerun attempt (samedatabaseId), plusgh run viewandgh release view. The README release section and the script header describe the new stopping point, exit codes and resume behaviour.Evidence
release: tagged v0.2.0 on <sha> and pushed the tagand it exits 0. The new tests fail against the old script (9 of 41 intests/release.rs), e.g.each_step_prints_a_progress_line_on_stderr:no "release: waiting for the release workflow at …/actions/runs/2".After:
cargo testis all green,tests/release.rs41 passed. New cases:release: released v0.2.0 at …/releases/tag/v0.2.0as its last linecustom-release-smoke / rocky, run URL andgh run rerun --failed <id>, tag still on the mergemainfor the merge in progress or failed: release still exits 0Merge Danger
Door: two-way
Maintainer tooling only. The release workflows don't change.
Blast Radius: releases
A release now takes about 7–8 minutes longer to exit. If the
gh run listquery ever mismatched the real run, the script would poll forever. Ctrl-C then leaves the release unaffected, because the tag has already been pushed. The query was checked against the real v0.5.0 run (36766380629).Unaddressed findings
Standards
release.sh(the awk inwait_for_workflow_runsand the jq inwait_for_release) and the poll loop repeats. Skipped: the two read different sources (gh apilines vsgh run viewJSON), so a shared helper would have to span awk and jq for three conditions.ghcopies the script's jq strings, andrun_viewrepeats the filter in Python. Skipped: the fake already matches--jqstrings exactly (LATEST_RUN_LINE,WORKFLOW_RUN_LINES). That is how it fails loudly when a query changes.Spec
ghfailure during the wait ends the script (exit 1) without the rerun hint. Skipped: the spec doesn't ask for retries, and rerunning the script resumes the wait.Closes #211
🤖 Generated with Claude Code