ci(external-it): retry dependency build on transient mirror failures - #30604
Conversation
Parity with main (#30590): wrap the 'Build dependencies for integration-tests' step (mvn install -am) in all three external-IT jobs in a 3x retry so a transient artifact-fetch failure doesn't kill the job before any test runs. Warn+sleep only when a retry follows; terminal ::error:: on final failure. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
❌ PR checklist incompleteThis PR cannot be merged until the following are addressed on its linked issue:
The fields live on the linked issue in the Shipping project (open the issue → right sidebar → Projects). After you set them, re-run this check (or push a commit) — issue/project changes do not re-trigger it automatically. Maintainers can bypass this check by adding the |
Code Review ✅ ApprovedAdds a retry loop to the dependency build step across external-IT workflows to handle transient mirror failures. No issues found. OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar | Powered by Gitar — free for open source |
| for attempt in 1 2 3; do | ||
| mvn -DskipTests install -pl :openmetadata-integration-tests -am && exit 0 | ||
| if [ "${attempt}" -lt 3 ]; then | ||
| echo "::warning::Build attempt ${attempt} failed (transient dependency-mirror error); retrying in 30s" |
There was a problem hiding this comment.
Unverified Maven failure labels
The loop classifies every nonzero Maven exit as a transient dependency-mirror failure, including deterministic compilation, plugin, formatting, and configuration errors. This produces misleading warning and terminal annotations that delay diagnosis of the actual build failure.
What
2.0 parity for #30590. Wraps the
Build dependencies for integration-testsstep (mvn -DskipTests install -pl :openmetadata-integration-tests -am) in all three external-IT jobs (ui / search / scale) in a 3× retry loop.Why
A single transient dependency-fetch failure kills the job before any test runs — the resolution had no retry, unlike the login step (
curl --retry 5). Different artifact every failing run ⇒ transient, not a real dependency problem. Warn+sleep only when a retry follows; terminal::error::on final failure (review feedback from #30590 already incorporated here).Notes
openmetadata-nightly#263and is ref-agnostic, so it already covers 2.0 runs. This PR only adds the generic Maven-Central retry to 2.0's in-repoubuntu-latestworkflow.🤖 Generated with Claude Code
Greptile Summary
Adds bounded Maven build retries to all three external integration-test jobs.
Confidence Score: 4/5
The PR appears safe to merge, with a non-blocking diagnostics issue where arbitrary Maven failures are labeled as dependency-mirror failures.
The bounded loops preserve terminal failure and successful retries, but their annotations assert a failure category that the exit-code-only logic does not establish.
Files Needing Attention: .github/workflows/java-playwright-external.yml
Important Files Changed
Reviews (1): Last reviewed commit: "ci(external-it): retry dependency build ..." | Re-trigger Greptile