fix(fleet): tolerate transient watch API errors with a bounded retry - #340
Merged
Merged
Conversation
The dispatch-suite and auto-promote watchers used gh run watch --exit-status, which fails the whole job on a single transient HTTP 401/403/5xx mid-poll even when the watched run succeeds. Replace with a bounded gh run view poll that retries transient API errors, exits 0 only on completed+success, fails 1 on any other conclusion, and fails closed on a stuck run or repeated errors. Closes #335. Signed-off-by: Joshua Temple <joshua.temple@stablekernel.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.
Problem
The fleet
dispatch-suiteaction and theauto-promoteRelease watcher usedgh run watch --exit-status, which fails the whole job on a single transientHTTP 401/403/5xxmid-poll even when the watched run concludes success. This reded a fully-green fleet run (rc.4 primary) on a transient 401 under load.Fix
Both watch sites now use a bounded
gh run view --json status,conclusionpoll loop that:status=completed AND conclusion=success;.github-only change (no rc cut). actionlint clean. Closes #335.