Repository navigation
Retry dependency download failures in Maven and Gradle CI Visibility tests - #12907
daniel-mohedano wants to merge 2 commits into
Conversation
CI Visibility Test Environment - sbt-scalatestJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - nebula-release-pluginJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - pass4sJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - netflix-zuulJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
This comment has been minimized.
This comment has been minimized.
CI Visibility Test Environment - reactive-streams-jvmJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - heliboardJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
CI Visibility Test Environment - sonar-kotlinJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - jolokiaJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - okhttpJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
CI Visibility Test Environment - spring_bootJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
More details
Maven retries are capped at three attempts and triggered by artifact-transfer failures. The Gradle pre-download now targets the user-home distribution cache used by TestKit.
🤖 Bits Code Review · Commit 8f1be3b
CI Visibility Test Environment - sonar-javaJob Status: 🟢 success
Baseline: median of Tests run to verify that CI Visibility behavior has not regressed in the current PR. |
AlexeyKuznetsov-DD
left a comment
There was a problem hiding this comment.
LGTM, left a comment about delay between attempts.
| MojoStartedSpy spy; | ||
| int attempt = 0; | ||
| do { | ||
| spy = new MojoStartedSpy(mojoStartedHandler); | ||
| MojoStartedSpy attemptSpy = spy; | ||
| MavenCli mavenCli = | ||
| new MavenCli() { | ||
| @Override | ||
| protected void customizeContainer(PlexusContainer container) { | ||
| container.addComponent(attemptSpy, EventSpy.class, null); | ||
| } | ||
| }; | ||
| mavenCli.doMain( | ||
| arguments.toArray(new String[0]), | ||
| WORKING_DIRECTORY.toAbsolutePath().toString(), | ||
| stdOut, | ||
| stderr); | ||
| } while (spy.artifactTransferFailed && ++attempt < MAVEN_BUILD_ATTEMPTS); |
There was a problem hiding this comment.
Maybe worth to have some sleep(5-10 seconds) between attempts? or am I missing something?
What Does This Do
Makes two CI Visibility test suites resilient to transient dependency download failures.
MavenProjectConfiguratorTest,MavenUtilsTest): when a Maven build fails because an artifact could not be transferred, it is retried up to 3 times. Builds that fail for other reasons are not retried.GradleDaemonSmokeTest: the Gradle distribution is downloaded in advance into the Gradle user home that TestKit uses. Before, the advance download went into the TestKit folder, which TestKit does not use for distributions. So TestKit downloaded every distribution a second time with its own 10 second timeout.Motivation
On
master, over the last 3 weeks:MavenProjectConfiguratorTestfailed 3 times because the Maven repository proxy returned HTTP 500.GradleDaemonSmokeTest(succeed-new-latest) failed 2 times because TestKit timed out downloading the Gradle distribution.Additional Notes
Both changes were checked locally with a proxy that injects failures:
masterfails like on CI, and this branch passes. ThetestandlatestDepTestsuites of the module pass.test-environment-trigger: skip