Skip to content

ci(external-it): retry dependency build on transient mirror failures - #30604

Merged
mohityadav766 merged 1 commit into
2.0from
ci/2.0-external-it-build-retry
Jul 28, 2026
Merged

ci(external-it): retry dependency build on transient mirror failures#30604
mohityadav766 merged 1 commit into
2.0from
ci/2.0-external-it-build-retry

Conversation

@mohityadav766

@mohityadav766 mohityadav766 commented Jul 28, 2026

Copy link
Copy Markdown
Member

What

2.0 parity for #30590. Wraps the Build dependencies for integration-tests step (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

  • The reindex test-hardening that went to 1.13 in #30589 is already present on 2.0 (identical to main), so no test backport is needed here.
  • The collate-ci nightly (pulp mirror) build retry lives in openmetadata-nightly#263 and is ref-agnostic, so it already covers 2.0 runs. This PR only adds the generic Maven-Central retry to 2.0's in-repo ubuntu-latest workflow.
  • Bounded mitigation: rides out transient errors, not a sustained mirror outage.

🤖 Generated with Claude Code

Greptile Summary

Adds bounded Maven build retries to all three external integration-test jobs.

  • Retries dependency builds up to three times.
  • Waits 30 seconds between attempts.
  • Preserves a failing step after the final unsuccessful attempt.

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

Filename Overview
.github/workflows/java-playwright-external.yml Adds equivalent retry loops to the UI, search, and scale external-IT dependency builds; the loops work but overstate the cause of arbitrary Maven failures.

Reviews (1): Last reviewed commit: "ci(external-it): retry dependency build ..." | Re-trigger Greptile

Greptile also left 1 inline comment on this PR.

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>
@github-actions

Copy link
Copy Markdown
Contributor

❌ PR checklist incomplete

This PR cannot be merged until the following are addressed on its linked issue:

  • No GitHub issue is linked. Link an issue in the Development section of the PR (or add Fixes #12345 to the description). For a same-org cross-repo issue, add Fixes open-metadata/<repo>#123 to the description.

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 skip-pr-checks label.

@github-actions github-actions Bot added backend safe to test Add this label to run secure Github workflows on PRs labels Jul 28, 2026
@gitar-bot

gitar-bot Bot commented Jul 28, 2026

Copy link
Copy Markdown
Code Review ✅ Approved

Adds a retry loop to the dependency build step across external-IT workflows to handle transient mirror failures. No issues found.

Options

Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

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"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend safe to test Add this label to run secure Github workflows on PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant