Skip to content

fix(ci): retry the full integration results download after a pause - #3304

Merged
freeqaz merged 2 commits into
mainfrom
fi-download-retry
Oct 23, 2026
Merged

freeqaz merged 2 commits into
mainfrom
fi-download-retry

Conversation

@freeqaz

@freeqaz freeqaz commented Oct 23, 2026

Copy link
Copy Markdown
Collaborator

Problem

#3298 made the CI Required results download in ci.yml retry after 60 s and then 240 s, because GitHub can refuse artifact downloads for minutes at a time ("Egress is over the account limit") and download-artifact gives up after about 25 s. The Full Integration Aggregate job in full-integration.yml does the same download with no retry, so one refused download reports every lane's result as missing.

Change

  • Add a composite action, .github/actions/download-results, holding fix(ci): retry the CI Required results download after a pause #3298's step shape: download with continue-on-error, wait 60 s, retry, wait 240 s, retry; the last failure fails the step. It takes pattern and path.
  • CI Required uses it in place of its five inline steps (same if, same pattern and path).
  • Full Integration Aggregate uses it for full-results-* (same implicit success() condition as before).

Behaviour on a successful first download is unchanged in both jobs.

Verification

  • actionlint .github/workflows/*.yml passes (it reads the local action's inputs: a misspelled input was reported as an error).
  • prettier --check on the three files, node scripts/ci/run-tests.mjs audit (no issues).
  • node --test tests/integration/ci-impact.test.mjs tests/integration/full-integration-preflight.test.mjs: 79/79 pass, including the CI Required step-condition test.
  • CI Required on this PR exercises the shared action's success path. The retry path is the code fix(ci): retry the CI Required results download after a pause #3298 shipped, unchanged apart from the input names. Full Integration was not dispatched.

Risks

  • Low. Composite steps evaluate !cancelled() and steps.* within the action, so a cancelled run skips the waits as before. The action runs from the checked-out tree, as scripts/ci/run-tests.mjs aggregate already does in both jobs.

Move the CI Required results download and its two retries (60 s, then
240 s) from ci.yml into a shared composite action and use it for the
Full Integration Aggregate download too, which had no retry.
@freeqaz
freeqaz requested a review from a team as a code owner October 23, 2026 12:52
@clawsweeper

clawsweeper Bot commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

@freeqaz
freeqaz merged commit f1522ea into main Oct 23, 2026
40 checks passed
@freeqaz
freeqaz deleted the fi-download-retry branch October 23, 2026 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant