Retry downstream app artifact downloads#2864
Conversation
Downstream app jobs need the Acton .deb artifact before they can install the compiler and run app tests. A transient artifact service timeout while listing artifacts can fail those jobs before any app code is checked out. Download the same artifact with gh inside a short retry loop. Temporary artifact API failures should not require manually rerunning unrelated app checks.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5e56589fcf
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| artifact="acton-debs-${{ inputs.arch }}" | ||
| for attempt in 1 2 3; do | ||
| rm -rf deb | ||
| if gh run download "$GITHUB_RUN_ID" --repo "$GITHUB_REPOSITORY" --name "$artifact" --dir .; then |
There was a problem hiding this comment.
Grant actions read before using gh
In repositories or organizations configured with the restricted GITHUB_TOKEN default, this job now passes a token without actions: read to gh run download, so artifact listing/download will fail with an authorization error before the app tests start. The previous actions/download-artifact path used the Actions artifact service for the current run, while the GitHub REST docs for listing/downloading workflow artifacts require the token to have "Actions" repository permissions (read); add job permissions such as actions: read plus contents: read for the later checkout.
Useful? React with 👍 / 👎.
Downstream app jobs need the
.debartifact before they can install Acton and run app tests. We saw one app job fail before checkout because the artifact service timed out while listing artifacts.This downloads the same artifact with
gh run downloadinside a small retry loop, so transient artifact-service timeouts do not force manual reruns of otherwise unrelated app checks.