fix: skip jobs needing build/deploy-artifact on release/* branches - #716
Conversation
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>
There was a problem hiding this comment.
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: neverforrelease/*branches toprepare-patched-agent, the dd-trace integration test base template, and reporting/commenting jobs so they don’t reference missingbuild-artifacton release branches. - Convert
notify-slack-on-success/notify-slack-on-failurefromwhen:torules:and add therelease/*exclusion. - Add the
release/*exclusion to the benchmarks bridge job thatneeds: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.
Scan-Build Report
Bug Summary
Reports
|
||||||||||||||||||||||||||||||||||||
CI Test ResultsRun: #30985245113 | Commit:
Status Overview
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>
There was a problem hiding this comment.
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 includeseq.
for attempt in $(seq 1 20); do
This comment has been minimized.
This comment has been minimized.
…re returning" This reverts commit 351909f.
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>
There was a problem hiding this comment.
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:onrelease/*branches, but this hunk also changes the deploy/publish behavior by uploading additional snapshot artifacts directly viacurl. 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
…ame" This reverts commit ff83df0.
…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.
There was a problem hiding this comment.
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 onrelease/*branches by adjusting dependent jobs’rules:. This change also adds new publish-time behavior (waiting for Sonatype snapshot resolvability) indeploy.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.
Copilot review: grabbing the last <value> in maven-metadata.xml could pick a different classifier's timestamp, giving false negatives.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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"
Benchmark Results (commit eb021f2)Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/128840448 Commit:
|
| 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%) | |
| finagle-chirper | 25 | ✅ 5500 ms (36 iters) | ✅ 5494 ms (36 iters) | ≈ -0.1% (±24%) | |
| 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 | ✅ / ✅ | ✅ / ✅ |
There was a problem hiding this comment.
💡 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".
| 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 |
There was a problem hiding this comment.
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 👍 / 👎.
There was a problem hiding this comment.
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\tin 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>
There was a problem hiding this comment.
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:/rulesforrelease/*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 pipefailmeans 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.jarpayload (curl -o /dev/nullstill 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
Benchmark Results (commit 271e8cc)Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/128873291 Commit:
|
| 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%) | |
| finagle-chirper | 25 | ✅ 5446 ms (36 iters) | ✅ 5456 ms (36 iters) | ≈ +0.2% (±24%) | |
| 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>
There was a problem hiding this comment.
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
curlto fetch the full debug JAR (-o /dev/nullstill 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)
Benchmark Results (commit 3aaae95)Pipeline: https://gitlab.ddbuild.io/DataDog/apm-reliability/benchmarking-platform/-/pipelines/129071452 Commit:
|
| 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%) | |
| finagle-chirper | 25 | ✅ 5467 ms (36 iters) | ✅ 5365 ms (36 iters) | ≈ -1.9% (±23.7%) | |
| 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
left a comment
There was a problem hiding this comment.
Looks good to me, thanks.
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>
What does this PR do?:
build-artifactanddeploy-artifactalready skip onrelease/*branches (added in #548), but the jobs thatneeds:them —prepare-patched-agent, the fourintegration-test-*matrix jobs,report-dd-trace-results,post-pr-comment,benchmarks-trigger, andnotify-slack-on-success/notify-slack-on-failure— still needed them unconditionally. GitLab requires everyneeds:target to exist in the pipeline or be markedoptional: true, so pipeline creation failed outright onrelease/*branches. This adds the samerelease/*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-failureused a barewhen:rather thanrules:, so those were converted torules:(GitLab doesn't allow both) with the samerelease/*exclusion added.How to test the change?:
python3 -c "import yaml; yaml.safe_load(open(...))")release/*branch and confirm it creates successfullyFor Datadog employees:
credentials of any kind, I've requested a security review (run the
dd:platform-security-reviewskill, or file a request via the PSEC review form).
bewairealso runs automatically on every PR.Unsure? Have a question? Request a review!