Repository navigation
ci(e2e): rebuild the image artifact when a retest cannot download it - #8094
Merged
Merged
Conversation
The e2e workflow downloads the shenyu-images artifact that build-docker-images uploads with retention-days: 1. /retest calls reRunWorkflowFailedJobs, which re-executes only the failed jobs: the producer job stays successful and is never re-run. Once the artifact has expired, every retry of e2e-case or e2e-storage fails on the download Unable to download artifact(s): Artifact not found for name: shenyu-images and no amount of /retest can recover the run. retest.yml now probes the artifacts of an e2e run before retrying it and falls back to a full workflow rerun when shenyu-images is missing or expired, so build-docker-images runs again and regenerates it. Runs that still have the artifact keep the cheaper failed-job rerun. e2e-k8s.yml also checks the two image tarballs after the download, so a manual "Re-run failed jobs" fails with an actionable message instead of an error from docker load.
yuluo-yx
approved these changes
Oct 24, 2026
3 tasks done
This was referenced Oct 25, 2026
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
/retestretries a run withreRunWorkflowFailedJobs, which re-executes only the failed jobs. In thee2eworkflow the jobs that fail aree2e-case/e2e-storage, and both need theshenyu-imagesartifact produced by
build-docker-images, which is uploaded withretention-days: 1.The producer job is
successin the original run, so a failed-job rerun leaves it untouched and theartifact is never rebuilt. Once it expires, every retry dies on
Observed on run
39037187784(PR #7766):run_attempt=4,created_at=2026-10-17, and/actions/runs/39037187784/artifactsreturns an empty list. Thee2egate then fails onneeds.e2e-case.result == failure, so the check can never turn green again — the PR has to bere-pushed even though nothing in it is broken. This is behind a large share of the 26 open PRs whose
only red check is
e2e.What this changes
retest.yml— before retrying a run, probe its artifacts. If it is ane2erun andshenyu-imagesis missing or expired, request a full workflow rerun instead of a failed-job rerun,so
build-docker-imagesruns again and regenerates the artifact. Runs that still hold the artifactkeep the cheaper failed-job rerun, and every other workflow is unaffected.
e2e-k8s.yml— after downloading, check that the two image tarballs are actually there and failwith an actionable message. A manual "Re-run failed jobs" from the UI now says what is wrong and what
to do, instead of surfacing a
docker loaderror.Verification
YAML.load_file), and the embeddedgithub-scriptpassesnode --checkwhen wrapped in an async function.
the missing one and exits non-zero; with both present it passes.
merge is to
/retestan old e2e-failed PR and watch for a full rerun instead of a failed-jobrerun.
Notes
I did not raise
retention-days, although that would also help: two tarballs per run times thenumber of active PRs makes artifact storage grow quickly, and the fallback above is correct without
it. Say the word if you would rather trade storage for fewer full reruns.