Skip to content

fix: skip jobs needing build/deploy-artifact on release/* branches - #716

Merged
jbachorik merged 11 commits into
mainfrom
fix/release_ci
Aug 5, 2026
Merged

fix: skip jobs needing build/deploy-artifact on release/* branches#716
jbachorik merged 11 commits into
mainfrom
fix/release_ci

Conversation

@jbachorik

Copy link
Copy Markdown
Collaborator

What does this PR do?:
build-artifact and deploy-artifact already skip on release/* branches (added in #548), but the jobs that needs: them — prepare-patched-agent, the four integration-test-* matrix jobs, report-dd-trace-results, post-pr-comment, benchmarks-trigger, and notify-slack-on-success/notify-slack-on-failure — still needed them unconditionally. GitLab requires every needs: target to exist in the pipeline or be marked optional: true, so pipeline creation failed outright on release/* branches. This adds the same release/* skip rule to all of those dependent jobs.

Motivation:
GitLab CI rejected pipeline creation on release/* branches with errors like:
'prepare-patched-agent' job needs 'build-artifact' job, but 'build-artifact' does not exist in the pipeline.

Additional Notes:
notify-slack-on-success/notify-slack-on-failure used a bare when: rather than rules:, so those were converted to rules: (GitLab doesn't allow both) with the same release/* exclusion added.

How to test the change?:

  • Validated all three edited YAML files parse (python3 -c "import yaml; yaml.safe_load(open(...))")
  • Push/trigger a pipeline on a release/* branch and confirm it creates successfully

For Datadog employees:

  • If this PR touches code that signs or publishes builds or packages, or handles
    credentials of any kind, I've requested a security review (run the dd:platform-security-review
    skill, or file a request via the PSEC review form).
    bewaire also runs automatically on every PR.
  • This PR doesn't touch any of that.
  • JIRA: N/A

Unsure? Have a question? Request a review!

build-artifact and deploy-artifact already skip on release/* branches,
but prepare-patched-agent, integration-test-*, report-dd-trace-results,
post-pr-comment, benchmarks-trigger, and notify-slack-on-* still needed
them unconditionally, breaking pipeline creation with a "needs job does
not exist" error.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 4, 2026 10:56
@jbachorik jbachorik added the AI label Aug 4, 2026

Copilot AI 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.

Pull request overview

This PR fixes GitLab pipeline creation failures on release/* branch pipelines by ensuring jobs that needs: build-artifact / deploy-artifact are also excluded on release/* branches (since those upstream jobs are already skipped there). It also converts the Slack notify jobs from when: to rules: to allow adding the same release/* exclusion.

Changes:

  • Add rules: when: never for release/* branches to prepare-patched-agent, the dd-trace integration test base template, and reporting/commenting jobs so they don’t reference missing build-artifact on release branches.
  • Convert notify-slack-on-success / notify-slack-on-failure from when: to rules: and add the release/* exclusion.
  • Add the release/* exclusion to the benchmarks bridge job that needs: deploy-artifact.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
.gitlab/dd-trace-integration/.gitlab-ci.yml Skips dd-trace integration jobs on release/* branches to avoid needs: build-artifact pipeline-creation failures.
.gitlab/build-deploy/.gitlab-ci.yml Converts Slack notify jobs to rules: and excludes release/* branches to avoid needs: deploy-artifact failures.
.gitlab/benchmarks/.gitlab-ci.yml Skips the benchmarks trigger on release/* branches to avoid needs: deploy-artifact pipeline-creation failures.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@dd-octo-sts

dd-octo-sts Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Scan-Build Report

User:runner@runnervmvrwv9
Working Directory:/home/runner/work/java-profiler/java-profiler/ddprof-lib/src/test/make
Command Line:make -j4 all
Clang Version:Ubuntu clang version 18.1.3 (1ubuntu1)
Date:Wed Aug 5 07:31:55 2026

Bug Summary

Bug TypeQuantityDisplay?
All Bugs1
Logic error
Dereference of null pointer1

Reports

Bug Group Bug Type ▾ File Function/Method Line Path Length
Logic errorDereference of null pointerprofiler.hfindLibraryByAddress51713

@dd-octo-sts

dd-octo-sts Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

CI Test Results

Run: #30985245113 | Commit: 0dcda7c | Duration: 13m 42s (longest job)

All 32 test jobs passed

Status Overview

JDK glibc-aarch64/debug glibc-amd64/debug musl-aarch64/debug musl-amd64/debug
8 - - -
8-ibm - - -
8-j9 - -
8-librca - -
8-orcl - - -
11 - - -
11-j9 - -
11-librca - -
17 - -
17-graal - -
17-j9 - -
17-librca - -
21 - -
21-graal - -
21-librca - -
25 - -
25-graal - -
25-librca - -

Legend: ✅ passed | ❌ failed | ⚪ skipped | 🚫 cancelled

Summary: Total: 32 | Passed: 32 | Failed: 0


Updated: 2026-08-05 07:48:41 UTC

…ning

deploy-artifact was reporting success before the published snapshot jar
was fetchable from central.sonatype.com, causing benchmarks-trigger's
downstream download to 404 moments later.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 4, 2026 11:38

Copilot AI 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.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Suppressed comments (1)

.gitlab/scripts/deploy.sh:59

  • The retry loop shells out to seq, which adds an unnecessary external dependency (and extra process) in a script already running under bash. Using bash brace expansion is simpler and avoids failures in minimal images that might not include seq.
    for attempt in $(seq 1 20); do

@datadog-official

This comment has been minimized.

Copilot AI review requested due to automatic review settings August 4, 2026 12:19

Copilot AI 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.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

Gradle's maven-publish always timestamps snapshot uploads, but
benchmarking-platform's downloader fetches by the literal -SNAPSHOT
filename instead of resolving maven-metadata.xml, so PR-branch
benchmarks 404 on every run. Upload plain copies under the literal
name it expects, alongside the canonical Gradle-managed artifact.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 4, 2026 12:25

Copilot AI 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.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Suppressed comments (1)

.gitlab/scripts/deploy.sh:66

  • This PR’s description and title focus on fixing GitLab job needs: on release/* branches, but this hunk also changes the deploy/publish behavior by uploading additional snapshot artifacts directly via curl. That’s a separate behavior change (and potentially riskier) that should either be explicitly called out in the PR description or split into a dedicated PR, so reviewers can evaluate it independently.
  # Gradle's maven-publish always uploads snapshots under a unique timestamped
  # filename (e.g. ddprof-1.2.3-branch-20260804.115820-1-debug.jar); there's no
  # supported way to opt out of that. Some downstream consumers (e.g. the
  # benchmarking-platform's downloader) fetch snapshots by the literal
  # "-SNAPSHOT" filename instead of resolving maven-metadata.xml, so also
  # publish plain copies of the locally-built jars under that literal name.
  if [[ "${LIB_VERSION}" == *-SNAPSHOT ]]; then
    echo "=== Publishing literal-named snapshot copies for non-metadata-aware consumers ==="
    BASE_URL="https://central.sonatype.com/repository/maven-snapshots/com/datadoghq/ddprof/${LIB_VERSION}"
    for jar in ddprof-lib/build/libs/ddprof-"${LIB_VERSION}"*.jar; do
      [ -f "$jar" ] || continue
      echo "Uploading $(basename "$jar")"
      curl -sf -u "${SONATYPE_USERNAME}:${SONATYPE_PASSWORD}" --upload-file "$jar" "${BASE_URL}/$(basename "$jar")"
    done
  fi

…ore returning

Poll the metadata.xml Sonatype indexing produces (not a nonexistent
literal-named jar) so deploy-artifact doesn't return before downstream
consumers can resolve the just-published snapshot.
Copilot AI review requested due to automatic review settings August 4, 2026 12:46

Copilot AI 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.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

Suppressed comments (1)

.gitlab/scripts/deploy.sh:56

  • This PR’s description and title focus on fixing GitLab needs: failures on release/* branches by adjusting dependent jobs’ rules:. This change also adds new publish-time behavior (waiting for Sonatype snapshot resolvability) in deploy.sh, which is not mentioned and affects release/publish operational behavior. Please either document this in the PR description or move it to a separate PR so it can be reviewed/tested independently.
  # Downstream consumers (e.g. benchmarking-platform's run-benchmarks.sh)
  # resolve the real timestamped filename via maven-metadata.xml right after
  # this job finishes. Sonatype needs a little time to index a freshly
  # published snapshot, so wait until the metadata (and the jar it points to)
  # are actually resolvable before this job reports success.

Comment thread .gitlab/scripts/deploy.sh Outdated
Copilot review: grabbing the last <value> in maven-metadata.xml could
pick a different classifier's timestamp, giving false negatives.
Copilot AI review requested due to automatic review settings August 4, 2026 12:52

Copilot AI 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.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Suppressed comments (3)

.gitlab/scripts/deploy.sh:71

  • The resolvability check downloads the entire debug JAR each attempt (even though output is discarded). This can add unnecessary bandwidth/time; a HEAD request (or a 0-byte range) is sufficient and should also have timeouts.
        if curl -fsSL -o /dev/null "${JAR_URL}"; then

.gitlab/scripts/deploy.sh:57

  • This PR adds a snapshot-resolution wait loop to deploy.sh, but the PR title/description only describe GitLab CI rules: changes. That makes the change easy to miss during review and may affect release expectations for the deploy job. Either document this behavior in the PR description/title or split it into a separate PR.
  # Downstream consumers (e.g. benchmarking-platform's run-benchmarks.sh)
  # resolve the real timestamped filename via maven-metadata.xml right after
  # this job finishes. Sonatype needs a little time to index a freshly
  # published snapshot, so wait until the metadata (and the jar it points to)
  # are actually resolvable before this job reports success.
  if [[ "${LIB_VERSION}" == *-SNAPSHOT ]]; then

.gitlab/scripts/deploy.sh:62

  • The metadata fetch uses curl without any connect/overall timeout. In CI this can hang the deploy job indefinitely if Sonatype is slow/unreachable, despite the retry loop logic.

This issue also appears on line 71 of the same file.

      SNAPSHOT_VER=$(curl -fsSL "${META_URL}" 2>/dev/null | awk '

IBM only retains the last few point releases on public.dhe.ibm.com;
8.0.8.60 was rotated out, breaking JDK setup on release/* runs.
Copilot AI review requested due to automatic review settings August 4, 2026 13:03

Copilot AI 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.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

Suppressed comments (3)

.gitlab/scripts/deploy.sh:76

  • The Sonatype wait loop uses curl without any explicit timeouts, which can hang this deploy job indefinitely on network stalls. Also, the JAR probe currently downloads the full JAR (even with -o /dev/null), which adds unnecessary bandwidth/time; a HEAD request is sufficient. Consider adding curl timeouts and switching the probe to HEAD, and guard against multiple matching entries by taking a single line (e.g., the last match).
      SNAPSHOT_VER=$(curl -fsSL "${META_URL}" 2>/dev/null | awk '
        /<snapshotVersion>/ { classifier=""; extension=""; value="" }
        /<classifier>/ { gsub(/<\/?classifier>/,""); gsub(/^[ \t]+|[ \t]+$/,""); classifier=$0 }
        /<extension>/ { gsub(/<\/?extension>/,""); gsub(/^[ \t]+|[ \t]+$/,""); extension=$0 }
        /<value>/ { gsub(/<\/?value>/,""); gsub(/^[ \t]+|[ \t]+$/,""); value=$0 }

.gitlab/scripts/deploy.sh:56

  • This change adds a Sonatype snapshot-resolvability wait loop, but the PR title/description are scoped to fixing GitLab pipeline creation failures on release/* branches. Please either update the PR description to include this deploy behavior change (and its motivation/risk), or split it into a separate PR to keep the CI fix focused.
  # Downstream consumers (e.g. benchmarking-platform's run-benchmarks.sh)
  # resolve the real timestamped filename via maven-metadata.xml right after
  # this job finishes. Sonatype needs a little time to index a freshly
  # published snapshot, so wait until the metadata (and the jar it points to)
  # are actually resolvable before this job reports success.

.github/workflows/cache_java.yml:37

  • The PR description focuses on GitLab release/* branch job rules, but this workflow change updates the cached IBM Java 8 JRE URL as well. Please update the PR description (and testing checklist) to mention this additional change, or split it into a separate PR so CI rule changes and GitHub Actions cache updates can be reviewed independently.
  JAVA_8_IBM_URL: "https://public.dhe.ibm.com/ibmdl/export/pub/systems/cloud/runtimes/java/8.0.8.70/linux/x86_64/ibm-java-jre-8.0-8.70-linux-x86_64.tgz"

@dd-octo-sts

dd-octo-sts Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit eb021f2)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/128840448 Commit: eb021f24f0fa6a9787529cd61f26dbd6fc9ac87d

⚠️ Significant outliers

  • 🔴 future-genetic (JDK 21): runtime +2.8% (2046→2103 ms)
  • 🔴 reactors (JDK 21): runtime +10.6% (15875→17555 ms)
Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10261 ms (21 iters) ✅ 10324 ms (21 iters) ≈ +0.6% (±11.3%) — / —
akka-uct 25 ✅ 8877 ms (24 iters) ✅ 8827 ms (24 iters) ≈ -0.6% (±9.9%) — / —
finagle-chirper 21 ✅ 6025 ms (33 iters) ✅ 5981 ms (33 iters) ≈ -0.7% (±24.7%) ⚠️ W:3 / ⚠️ W:3
finagle-chirper 25 ✅ 5500 ms (36 iters) ✅ 5494 ms (36 iters) ≈ -0.1% (±24%) ⚠️ W:4 / ⚠️ W:3
fj-kmeans 21 ✅ 2652 ms (71 iters) ✅ 2632 ms (72 iters) ≈ -0.8% (±2.5%) — / —
fj-kmeans 25 ✅ 2773 ms (67 iters) ✅ 2757 ms (68 iters) ≈ -0.6% (±2.8%) — / —
future-genetic 21 ✅ 2046 ms (90 iters) ✅ 2103 ms (89 iters) 🔴 +2.8% — / —
future-genetic 25 ✅ 2033 ms (91 iters) ✅ 2072 ms (90 iters) ≈ +1.9% (±2.7%) — / —
naive-bayes 21 ✅ 1269 ms (135 iters) ✅ 1246 ms (137 iters) ≈ -1.8% (±32.2%) — / —
naive-bayes 25 ✅ 981 ms (174 iters) ✅ 1020 ms (168 iters) ≈ +4% (±32.5%) — / —
reactors 21 ✅ 15875 ms (15 iters) ✅ 17555 ms (15 iters) 🔴 +10.6% — / —
reactors 25 ✅ 18503 ms (15 iters) ✅ 18301 ms (15 iters) ≈ -1.1% (±3.9%) — / —
Internal counter details (ddprof)

ddprof internal counters, latest / dev (✅ = 0, · = unavailable):

Benchmark JDK Dropped rec Dropped jvmti Dropped trace Skipped WC AGCT fail Unwind fail
akka-uct 21 ✅ / ✅ ✅ / ✅ 2 / 2 1969 / 1954 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ 5 / 3 2251 / 2324 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 3 / 3 8771 / 8330 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 2 / 1 8658 / 8388 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ 5 / 7 1273 / 1283 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ 2 / 3 1267 / 1281 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ ✅ / 2 2915 / 3117 ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ 3 / 1 2937 / 2915 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 2 / 4 3544 / 3530 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 4 / 4 3522 / 3499 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ ✅ / ✅ 1688 / 1903 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ 1 / 1 1888 / 1896 ✅ / ✅ ✅ / ✅

@jbachorik
jbachorik marked this pull request as ready for review August 4, 2026 14:06
@jbachorik
jbachorik requested a review from a team as a code owner August 4, 2026 14:06

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: eb021f24f0

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .gitlab/scripts/deploy.sh Outdated
Comment on lines +69 to +71
if [ -n "${SNAPSHOT_VER}" ]; then
JAR_URL="https://central.sonatype.com/repository/maven-snapshots/com/datadoghq/ddprof/${LIB_VERSION}/ddprof-${SNAPSHOT_VER}-debug.jar"
if curl -fsSL -o /dev/null "${JAR_URL}"; then

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Verify the newly published snapshot, not any prior one

When publishing another build of an existing branch *-SNAPSHOT version, the public metadata can still reference the preceding timestamped build while the new one is being indexed. Because that preceding debug JAR remains resolvable, this check succeeds immediately, allowing benchmarks-trigger to download and benchmark stale code. Record the metadata value before publishing or otherwise verify that the resolved value identifies the build just uploaded before reporting success.

AGENTS.md reference: AGENTS.md:L445-L451

Useful? React with 👍 / 👎.

Comment thread .gitlab/benchmarks/.gitlab-ci.yml Outdated
Copilot AI review requested due to automatic review settings August 4, 2026 14:24

Copilot AI 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.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Suppressed comments (2)

.gitlab/scripts/deploy.sh:56

  • This PR is described as a GitLab CI rules fix for release/* pipelines, but this change adds new publish-time behavior (waiting/polling Sonatype until a snapshot debug JAR is resolvable). Either update the PR description/title to include this deploy behavior change, or move this block to a separate PR so the CI rules fix can be reviewed/rolled back independently.
  # Downstream consumers (e.g. benchmarking-platform's run-benchmarks.sh)
  # resolve the real timestamped filename via maven-metadata.xml right after
  # this job finishes. Sonatype needs a little time to index a freshly
  # published snapshot, so wait until the metadata (and the jar it points to)
  # are actually resolvable before this job reports success.

.gitlab/scripts/deploy.sh:67

  • The awk gsub(/</?tag>/, ...) patterns need the / in </...> to be escaped (write the regex as <\\/?classifier> / <\\/?extension> / <\\/?value> inside the awk script). As written (</?classifier> etc.), awk will treat the / after < as the end of the regex literal and fail to parse, breaking the snapshot polling logic. Also consider using [[:space:]] instead of \t in the trim regex for better awk portability.
        /<classifier>/ { gsub(/<\/?classifier>/,""); gsub(/^[ \t]+|[ \t]+$/,""); classifier=$0 }
        /<extension>/ { gsub(/<\/?extension>/,""); gsub(/^[ \t]+|[ \t]+$/,""); extension=$0 }
        /<value>/ { gsub(/<\/?value>/,""); gsub(/^[ \t]+|[ \t]+$/,""); value=$0 }
        /<\/snapshotVersion>/ { if (classifier=="debug" && extension=="jar") print value }

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 4, 2026 14:39

Copilot AI 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.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

Suppressed comments (3)

.gitlab/scripts/deploy.sh:57

  • This PR’s description and title focus on GitLab CI needs:/rules for release/* branches, but this change adds new publish-time behavior (waiting up to ~5 minutes for Sonatype snapshot metadata/JAR to become resolvable). Please update the PR description to mention this behavior change (or split it into a separate PR) so reviewers and release managers don’t miss it.
  # Downstream consumers (e.g. benchmarking-platform's run-benchmarks.sh)
  # resolve the real timestamped filename via maven-metadata.xml right after
  # this job finishes. Sonatype needs a little time to index a freshly
  # published snapshot, so wait until the metadata (and the jar it points to)
  # are actually resolvable before this job reports success.
  if [[ "${LIB_VERSION}" == *-SNAPSHOT ]]; then

.gitlab/scripts/deploy.sh:62

  • set -eo pipefail means a slow or stalled network call here can stretch the loop far beyond the intended 20×15s. Add explicit curl timeouts so the retry/backoff behavior is predictable when Sonatype is slow or unreachable.
      SNAPSHOT_VER=$(curl -fsSL "${META_URL}" 2>/dev/null | awk '

.gitlab/scripts/deploy.sh:71

  • The JAR availability probe currently downloads the entire *-debug.jar payload (curl -o /dev/null still fetches the body). This can be slow and waste bandwidth; a HEAD request (or similar metadata-only check) is sufficient to verify the artifact is resolvable.
        if curl -fsSL -o /dev/null "${JAR_URL}"; then

@dd-octo-sts

dd-octo-sts Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit 271e8cc)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/128873291 Commit: 271e8cc099bcb05219a5f8a03c2ad6ddf7840b7a

⚠️ Significant outliers

  • 🟢 future-genetic (JDK 21): runtime -4.2% (2130→2040 ms)
Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10352 ms (21 iters) ✅ 10298 ms (21 iters) ≈ -0.5% (±10.9%) — / —
akka-uct 25 ✅ 8795 ms (24 iters) ✅ 8819 ms (24 iters) ≈ +0.3% (±9.4%) — / —
finagle-chirper 21 ✅ 5949 ms (33 iters) ✅ 5995 ms (33 iters) ≈ +0.8% (±25.1%) ⚠️ W:3 / ⚠️ W:3
finagle-chirper 25 ✅ 5446 ms (36 iters) ✅ 5456 ms (36 iters) ≈ +0.2% (±24%) ⚠️ W:3 / ⚠️ W:3
fj-kmeans 21 ✅ 2658 ms (70 iters) ✅ 2649 ms (72 iters) ≈ -0.3% (±2.5%) — / —
fj-kmeans 25 ✅ 2833 ms (66 iters) ✅ 2847 ms (66 iters) ≈ +0.5% (±2.6%) — / —
future-genetic 21 ✅ 2130 ms (88 iters) ✅ 2040 ms (91 iters) 🟢 -4.2% — / —
future-genetic 25 ✅ 2087 ms (89 iters) ✅ 2076 ms (89 iters) ≈ -0.5% (±2.6%) — / —
naive-bayes 21 ✅ 1243 ms (137 iters) ✅ 1289 ms (134 iters) ≈ +3.7% (±33%) — / —
naive-bayes 25 ✅ 1021 ms (168 iters) ✅ 1009 ms (169 iters) ≈ -1.2% (±31.5%) — / —
reactors 21 ✅ 16498 ms (15 iters) ✅ 15911 ms (15 iters) ≈ -3.6% (±8%) — / —
reactors 25 ✅ 18528 ms (15 iters) ✅ 18519 ms (15 iters) ≈ -0% (±4.2%) — / —
Internal counter details (ddprof)

ddprof internal counters, latest / dev (✅ = 0, · = unavailable):

Benchmark JDK Dropped rec Dropped jvmti Dropped trace Skipped WC AGCT fail Unwind fail
akka-uct 21 ✅ / ✅ ✅ / ✅ 3 / ✅ 2003 / 2022 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ 3 / 1 2332 / 2420 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 3 / 4 8783 / 8373 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ 2 / ✅ 8498 / 7914 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ 5 / 1 1228 / 1279 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ 1 / 1 1278 / 1308 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ ✅ / 1 3078 / 2936 ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ ✅ / 1 2884 / 2853 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 6 / 2 3486 / 3542 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 5 / 4 3503 / 3476 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ 2 / 1 1628 / 1689 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ 2 / 1 1923 / 1852 ✅ / ✅ ✅ / ✅

Compares against a pre-publish baseline so a lingering prior-build
entry in maven-metadata.xml isn't mistaken for the freshly published
snapshot; adds unit tests for the new comparison helper.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings August 5, 2026 07:29

Copilot AI 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.

Pull request overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated no new comments.

Suppressed comments (2)

.gitlab/scripts/deploy.sh:91

  • The snapshot-resolvability probe uses curl to fetch the full debug JAR (-o /dev/null still downloads the body). In the worst case this can download a large artifact up to 20 times, adding avoidable bandwidth/time to the deploy job. Prefer a HEAD request (or a 0-byte range) to only check existence/availability.
        if curl -fsSL "${CURL_TIMEOUT_OPTS[@]}" -o /dev/null "${JAR_URL}"; then

.gitlab/scripts/deploy.sh:47

  • This PR is described as a GitLab CI release/*-branch skip/needs fix, but this hunk also changes deployment behavior by adding Sonatype snapshot polling (and a new shared helper + unit test job). That’s a material scope expansion for a deploy script; please update the PR title/description to mention it, or split the snapshot-polling change into a separate PR for easier review/rollback.
# Resolve the debug/jar classifier's timestamped version from a snapshot's
# maven-metadata.xml. Only the last matching <snapshotVersion> block is
# honored so a metadata file listing the same classifier/extension pair more
# than once can't produce multiple version lines from a single lookup.
CURL_TIMEOUT_OPTS=(--connect-timeout 10 --max-time 30)

@dd-octo-sts

dd-octo-sts Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Benchmark Results (commit 3aaae95)

Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/129071452 Commit: 3aaae95ce863fc717b52eb31b8bf9dbfb5dee5a6

⚠️ Significant outliers

  • 🔴 future-genetic (JDK 21): runtime +3.3% (2077→2145 ms)
  • 🟢 future-genetic (JDK 25): runtime -3.5% (1995→1926 ms)
Runtime details (per benchmark × JDK)
Benchmark JDK Latest Dev Δ (dev vs latest) Issues L/D
akka-uct 21 ✅ 10194 ms (21 iters) ✅ 10166 ms (21 iters) ≈ -0.3% (±10.8%) — / —
akka-uct 25 ✅ 8800 ms (24 iters) ✅ 8831 ms (24 iters) ≈ +0.4% (±9.8%) — / —
finagle-chirper 21 ✅ 5912 ms (33 iters) ✅ 5945 ms (33 iters) ≈ +0.6% (±25.4%) ⚠️ W:3 / ⚠️ W:3
finagle-chirper 25 ✅ 5467 ms (36 iters) ✅ 5365 ms (36 iters) ≈ -1.9% (±23.7%) ⚠️ W:3 / ⚠️ W:3
fj-kmeans 21 ✅ 2818 ms (66 iters) ✅ 2830 ms (66 iters) ≈ +0.4% (±2.5%) — / —
fj-kmeans 25 ✅ 2810 ms (66 iters) ✅ 2837 ms (66 iters) ≈ +1% (±2.5%) — / —
future-genetic 21 ✅ 2077 ms (89 iters) ✅ 2145 ms (86 iters) 🔴 +3.3% — / —
future-genetic 25 ✅ 1995 ms (94 iters) ✅ 1926 ms (96 iters) 🟢 -3.5% — / —
naive-bayes 21 ✅ 1260 ms (136 iters) ✅ 1297 ms (133 iters) ≈ +2.9% (±32.8%) — / —
naive-bayes 25 ✅ 1018 ms (168 iters) ✅ 1020 ms (168 iters) ≈ +0.2% (±31.4%) — / —
reactors 21 ✅ 15727 ms (15 iters) ✅ 15602 ms (15 iters) ≈ -0.8% (±7.8%) — / —
reactors 25 ✅ 18449 ms (15 iters) ✅ 18627 ms (15 iters) ≈ +1% (±3.6%) — / —
Internal counter details (ddprof)

ddprof internal counters, latest / dev (✅ = 0, · = unavailable):

Benchmark JDK Dropped rec Dropped jvmti Dropped trace Skipped WC AGCT fail Unwind fail
akka-uct 21 ✅ / ✅ ✅ / ✅ 1 / 3 2013 / 2002 ✅ / ✅ ✅ / ✅
akka-uct 25 ✅ / ✅ ✅ / ✅ 1 / 1 2224 / 2305 ✅ / ✅ ✅ / ✅
finagle-chirper 21 ✅ / ✅ ✅ / ✅ 1 / 4 8715 / 8685 ✅ / ✅ ✅ / ✅
finagle-chirper 25 ✅ / ✅ ✅ / ✅ ✅ / ✅ 8434 / 8172 ✅ / ✅ ✅ / ✅
fj-kmeans 21 ✅ / ✅ ✅ / ✅ 3 / ✅ 1273 / 1262 ✅ / ✅ ✅ / ✅
fj-kmeans 25 ✅ / ✅ ✅ / ✅ 1 / 2 1260 / 1284 ✅ / ✅ ✅ / ✅
future-genetic 21 ✅ / ✅ ✅ / ✅ ✅ / 2 2913 / 2921 ✅ / ✅ ✅ / ✅
future-genetic 25 ✅ / ✅ ✅ / ✅ 1 / 4 2936 / 2840 ✅ / ✅ ✅ / ✅
naive-bayes 21 ✅ / ✅ ✅ / ✅ 5 / 1 3487 / 3491 ✅ / ✅ ✅ / ✅
naive-bayes 25 ✅ / ✅ ✅ / ✅ 4 / 4 3495 / 3482 ✅ / ✅ ✅ / ✅
reactors 21 ✅ / ✅ ✅ / ✅ ✅ / ✅ 1675 / 1623 ✅ / ✅ ✅ / ✅
reactors 25 ✅ / ✅ ✅ / ✅ ✅ / ✅ 1914 / 1873 ✅ / ✅ ✅ / ✅

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

Looks good to me, thanks.

@jbachorik
jbachorik merged commit 0210f16 into main Aug 5, 2026
109 checks passed
@jbachorik
jbachorik deleted the fix/release_ci branch August 5, 2026 10:04
@github-actions github-actions Bot added this to the 1.49.0 milestone Aug 5, 2026
jbachorik added a commit that referenced this pull request Aug 7, 2026
build-artifact and deploy-artifact don't run on release branches, so
downstream needs: references broke pipeline creation there entirely.
Backports the .skip-on-release fix from main (#716).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants