Skip to content

Track CI builder images in selected task inputs - #13084

Open
bric3 wants to merge 14 commits into
masterfrom
bdu/ci-builder-inputs
Open

bric3 wants to merge 14 commits into
masterfrom
bdu/ci-builder-inputs

Conversation

@bric3

@bric3 bric3 commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

What Does This Do

Include the CI builder image identity in cache keys for Git integration tests, native profiling tests and native smoke builds. The opt-in convention applies to CI Visibility, ddprof, and the Spring and Quarkus native smoke modules.

When CI=true, it adds the identity to Test, Exec and JavaExec inputs. Native smoke producers declare the same input explicitly. CI supplies ciBuilderImage through one global variable derived from the existing builder repository and version prefix; local builds require no configuration.

Motivation

JVM fingerprints do not identify Git, native runtime libraries or the C compiler, linker and headers supplied by the image. Changing the configured builder version should invalidate results that depend on these components.

Additional Notes

Image contents Confirmed consumers
Git executable CI Visibility tests generate pack files with Git and compare their bytes with a fixture.
Native runtime / libc ddprof controller tests start real native profiling using libraries resolved from the image.
GraalVM and native tooling Spring and Quarkus smoke producers compile native executables; their tests run those executables.

Routine shell-command wrappers and CWS tests using dummy native requests keep their existing task inputs. Their basic command and memory assertions do not justify invalidating results on every image change.

The identity contains the opaque ciBuilderImage value, operating system and architecture. Missing or blank values fail when a tracked CI task's inputs are queried. Outside CI, the provider returns an empty map.

Republishing an image under the same tag leaves the configured identity unchanged. CI can later supply a content hash through the same property. Native builds also fingerprint GraalVM release contents through #13083; compiler tasks keep Gradle's toolchain inputs.

Contributor Checklist

@bric3 bric3 added tag: ai generated Largely based on code generated by an AI or LLM comp: tooling Build & Tooling type: feature Enhancements and improvements tag: no release notes Changes to exclude from release notes labels Oct 27, 2026 — with ChatGPT Codex Connector
@datadog-official

datadog-official Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

🎯 Code Coverage (details)
• Patch Coverage: 100.00%
• Overall Coverage: 45.26% (-14.29%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 5ed610c | Docs | Give us feedback!

@dd-octo-sts

dd-octo-sts Bot commented Oct 27, 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 13.89 s 13.97 s [-1.4%; +0.3%] (no difference)
startup:insecure-bank:tracing:Agent 12.90 s 12.96 s [-1.2%; +0.2%] (no difference)
startup:petclinic:appsec:Agent 17.16 s 17.10 s [-0.4%; +1.1%] (no difference)
startup:petclinic:iast:Agent 17.04 s 17.05 s [-1.0%; +0.8%] (no difference)
startup:petclinic:profiling:Agent 16.58 s 16.73 s [-2.3%; +0.4%] (no difference)
startup:petclinic:sca:Agent 17.14 s 16.98 s [+0.1%; +1.8%] (maybe worse)
startup:petclinic:tracing:Agent 16.24 s 16.14 s [-0.5%; +1.7%] (no difference)

Commit: 48e74b44 · 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.

@bric3
bric3 added this pull request to stack #13099 October 28, 2026 08:02
@bric3
bric3 force-pushed the bdu/ci-builder-inputs branch from 05f7779 to 0bf02b2 Compare October 28, 2026 09:52
@bric3
bric3 removed this pull request from stack #13099 October 28, 2026 09:59
@bric3
bric3 changed the base branch from master to bdu/smoke-test-artifact-inputs October 28, 2026 09:59
@bric3
bric3 added this pull request to stack #13103 October 28, 2026 10:00
@bric3
bric3 force-pushed the bdu/ci-builder-inputs branch from 0bf02b2 to 9e094be Compare October 28, 2026 10:41
@bric3
bric3 marked this pull request as ready for review October 28, 2026 13:31
@bric3
bric3 requested a review from a team as a code owner October 28, 2026 13:31
@bric3
bric3 requested review from PerfectSlayer and removed request for a team October 28, 2026 13:31
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-28T13:34:10.014557Z 92ccd7b Draft marked ready
🔒 Security Review ✅ Completed 2026-10-28T13:34:50.185985Z 92ccd7b Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@bric3
bric3 requested a review from sarahchen6 October 28, 2026 13:31

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

Bits Code Review: PASS

More details

The lazy identity provider and task-input wiring match the documented behavior: tracked GitLab CI inputs require a nonblank builder identity, while local consumers receive an empty map.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Bits Code Review · Commit 92ccd7b

@sarahchen6 sarahchen6 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.

👍

@bric3
bric3 removed this pull request from stack #13103 October 29, 2026 11:06
@bric3
bric3 requested a review from a team as a code owner October 29, 2026 11:06
@bric3
bric3 requested review from randomanderson and removed request for a team October 29, 2026 11:06
@bric3
bric3 added this pull request to stack #13119 October 29, 2026 11:07
@bric3 bric3 changed the title Add opt-in CI builder image fingerprints Track CI builder images in selected task inputs Oct 29, 2026

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

Bits Code Review: PASS

More details

Cache invalidation depends on CI changing ciBuilderImage when builder contents change; republishing an unchanged tag remains an explicitly documented limitation.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Bits Code Review · Commit fc1a646

@bric3
bric3 force-pushed the bdu/ci-builder-inputs branch from b0ce14d to 95c51de Compare October 29, 2026 12:16
Base automatically changed from bdu/smoke-test-artifact-inputs to master October 29, 2026 14:14

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

Bits Code Review: PASS

More details

The cache identity covers configured builder-version and platform changes, but intentionally cannot detect an image republished under the same tag.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Bits Code Review · Commit 95c51de

@bric3 bric3 mentioned this pull request Oct 29, 2026
5 of 7 tasks

@PerfectSlayer PerfectSlayer left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

❔ question: ‏Dumb question: why not apply it by default rather than having to pick and maintain the comment about image tool used for every module that includes it?
I'm pretty sure this comment won't be tracked / updated properly over time 😓

@bric3

bric3 commented Oct 30, 2026

Copy link
Copy Markdown
Contributor Author

@PerfectSlayer Fair question! The rationale is to not over fingerprint inputs either. Adding more input reduce reusability of the cached outputs.

@bric3
bric3 requested a review from a team as a code owner October 30, 2026 11:37
@bric3
bric3 requested review from jordan-wong and removed request for a team October 30, 2026 11:37

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

Bits Code Review: PASS

More details

The configured builder identity reaches selected task fingerprints and native-smoke producer inputs, while local builds remain independent of the CI property. Execution behavior was not validated.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Bits Code Review · Commit 5ed610c

This branch has not been deployed

No deployments
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 type: feature Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants