Fix release CI gate racing the build-and-test checks#19
Open
lukaskroepfl wants to merge 1 commit into
Open
Conversation
The ci-passed gate in pack.yml fires immediately on tag push and read the build-and-test check conclusions once. Because the tag push and the branch push that triggers ci.yml happen together, the checks were still queued (conclusion: null) when the gate ran, so every release failed the gate and needed a manual re-run after CI went green. Poll the tagged commit's check-runs until the build-and-test checks reach a terminal (completed) state, with a 15-minute timeout, then assert all are success. The poll only breaks once at least one build-and-test check exists and none are still pending, so it also handles matrix legs registering incrementally. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
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
ci-passedgate inpack.ymlfired immediately on tag push and read thebuild-and-testcheck conclusions exactly once. Since the tag push and the branch push that triggersci.ymlhappen at the same time, the checks were stillqueued/in_progress(conclusionnull) when the gate ran — so the gate failed anddraft-releasewas skipped. This bit the v0.4.0 release, which needed a manualgh run rerun --failedafter CI went green.This change makes the gate poll the tagged commit's check-runs until the
build-and-testchecks reach a terminal (completed) state, with a 15-minute timeout, then asserts all of them aresuccess.Behavior
in_progress/queued(null)completed, one still runningsuccessLogic was exercised locally against fixtures for each of these cases.
Test plan
v*tag push completes the pack workflow without a manual re-run