Skip to content

Forward repository proxies to nested smoke test builds - #12150

Open
AlexeyKuznetsov-DD wants to merge 2 commits into
masterfrom
alexeyk/nested-build-proxy
Open

Forward repository proxies to nested smoke test builds#12150
AlexeyKuznetsov-DD wants to merge 2 commits into
masterfrom
alexeyk/nested-build-proxy

Conversation

@AlexeyKuznetsov-DD

@AlexeyKuznetsov-DD AlexeyKuznetsov-DD commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

What Does This Do

Makes every NestedGradleBuild inherit the outer build's mavenRepositoryProxy and gradlePluginProxy settings.

When an effective proxy is configured, the task:

  • forwards it to the nested build as a -P property;
  • preserves a value explicitly configured in gradleProperties;
  • injects proxy-repositories.init.gradle.kts exactly once, so nested builds do not need custom repository handling;
  • tracks the effective proxy as a task input, so proxy changes invalidate cached task output.

Proxy resolution now lives entirely in NestedGradleBuild. The previous CI-only forwarding in SmokeTestAppExtension was removed so manual and extension-created tasks use the same behavior and explicit task overrides work consistently.

Motivation

Nested smoke-test builds use a temporary Gradle user home, so they cannot see proxy settings from the outer build's gradle.properties.

Previously, proxy forwarding lived in CI-only SmokeTestAppExtension conventions. Local builds therefore bypassed configured proxies, while the WildFly earBuild tasks registered directly as NestedGradleBuild tasks did not receive the extension forwarding even on CI.

This caused nested dependency resolution to fall back to Maven Central and fail in environments where direct access is blocked. Centralizing the behavior in the task also ensures future nested builds inherit proxy configuration automatically.

Additional Notes

Verification

  • SmokeTestAppPluginTest: 12 passed.
  • Four focused SmokeTestAppEndToEndTest proxy regressions passed under JDK 21, covering:
    • local proxy forwarding and exactly one injected init script;
    • a proxy declared only through gradleProperties;
    • an explicit task proxy overriding the outer proxy on CI;
    • cache invalidation when the effective proxy changes.
  • ./gradlew spotlessCheck passed.

Contributor Checklist

🤖 Generated with Codex.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@AlexeyKuznetsov-DD AlexeyKuznetsov-DD added type: bug fix Bug fix tag: no release notes Changes to exclude from release notes comp: tooling Build & Tooling tag: ai generated Largely based on code generated by an AI or LLM labels Aug 5, 2026
@datadog-official

This comment has been minimized.

@dd-octo-sts

dd-octo-sts Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 14.04 s 14.03 s [-0.6%; +0.9%] (no difference)
startup:insecure-bank:tracing:Agent 12.91 s 13.02 s [-1.7%; +0.1%] (no difference)
startup:petclinic:appsec:Agent 17.06 s 17.01 s [-0.6%; +1.2%] (no difference)
startup:petclinic:iast:Agent 17.05 s 17.06 s [-0.6%; +0.6%] (no difference)
startup:petclinic:profiling:Agent 16.79 s 17.06 s [-2.5%; -0.6%] (maybe better)
startup:petclinic:sca:Agent 16.72 s 16.57 s [-0.1%; +1.9%] (no difference)
startup:petclinic:tracing:Agent 16.21 s 16.08 s [-0.2%; +1.7%] (no difference)

Commit: ee54d24e · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

@AlexeyKuznetsov-DD AlexeyKuznetsov-DD self-assigned this Aug 5, 2026
@AlexeyKuznetsov-DD
AlexeyKuznetsov-DD marked this pull request as ready for review August 5, 2026 18:55
@AlexeyKuznetsov-DD
AlexeyKuznetsov-DD requested a review from a team as a code owner August 5, 2026 18:55

@datadog-official datadog-official Bot left a comment

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.

Datadog Autotest: PASS

More details

Proxy precedence, explicit nested property preservation, one-time init-script injection, and cache invalidation all remain consistent with the intended nested-build behavior. Focused plugin tests pass; the end-to-end scenarios could not complete because the sandbox cannot download Gradle 8.14.5, so that environment limitation is the remaining validation gap.

Was this helpful? React 👍 or 👎

📊 Validated against 27 scenarios · Open Bits AI session

🤖 Datadog Autotest · Commit ee54d24 · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest

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

Labels

comp: tooling Build & Tooling tag: ai generated Largely based on code generated by an AI or LLM tag: no release notes Changes to exclude from release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant