Skip to content

Commit bf909b9

Browse files
committed
test
1 parent 9701ba6 commit bf909b9

1 file changed

Lines changed: 92 additions & 11 deletions

File tree

.gitlab-ci.yml

Lines changed: 92 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ variables:
6262
description: "Enable flaky tests"
6363
value: "false"
6464

65+
JAVA_PROFILER_REF:
66+
description: "When non-empty, clone DataDog/java-profiler at this Git ref (branch or tag), build ddprof, and use it as ddprof.jar for Gradle jobs instead of the Maven dependency."
67+
value: "paul.fournillon/wallclock_precheck"
68+
6569
# One pipeline injection package size ratchet
6670
OCI_PACKAGE_MAX_SIZE_BYTES: 40_000_000
6771
LIB_INJECTION_IMAGE_MAX_SIZE_BYTES: 40_000_000
@@ -165,9 +169,21 @@ default:
165169
echo "Failed to find base ref for PR" >&2
166170
fi
167171
172+
# When build_java_profiler_ddprof ran, its artifact is available at custom-ddprof/ddprof.jar.
173+
# Append root project property expected by dd-java-agent/ddprof-lib/build.gradle.
174+
.inject_custom_ddprof_jar: &inject_custom_ddprof_jar
175+
- |
176+
if [ -f "${CI_PROJECT_DIR}/custom-ddprof/ddprof.jar" ]; then
177+
echo "ddprof.jar=${CI_PROJECT_DIR}/custom-ddprof/ddprof.jar" >> gradle.properties
178+
echo "Using custom ddprof.jar from java-profiler build"
179+
fi
180+
168181
.gradle_build: &gradle_build
169182
image: ${BUILDER_IMAGE_REPO}:${BUILDER_IMAGE_VERSION_PREFIX}base
170183
stage: build
184+
needs:
185+
- job: build_java_profiler_ddprof
186+
optional: true
171187
variables:
172188
MAVEN_OPTS: "-Xms256M -Xmx1024M"
173189
GRADLE_WORKERS: 6
@@ -217,6 +233,7 @@ default:
217233
org.gradle.java.installations.auto-download=false
218234
org.gradle.java.installations.fromEnv=$JAVA_HOMES
219235
EOF
236+
- *inject_custom_ddprof_jar
220237
- mkdir -p .gradle
221238
- export GRADLE_USER_HOME=$(pwd)/.gradle
222239
# replace maven central part by MAVEN_REPOSITORY_PROXY in .mvn/wrapper/maven-wrapper.properties
@@ -292,8 +309,43 @@ dd-octo-sts-pre-release-check:
292309
max: 2
293310
when: always
294311

312+
# Builds java-profiler from JAVA_PROFILER_REF and publishes custom-ddprof/ddprof.jar for downstream Gradle jobs.
313+
# Requires JDK 17+ for Gradle 9 and native toolchain for ddprof release (same base image as .gradle_build).
314+
build_java_profiler_ddprof:
315+
image: ${BUILDER_IMAGE_REPO}:${BUILDER_IMAGE_VERSION_PREFIX}base
316+
stage: build
317+
rules:
318+
- if: '$JAVA_PROFILER_REF =~ /.+/'
319+
when: on_success
320+
variables:
321+
FF_USE_FASTZIP: "true"
322+
CACHE_COMPRESSION_LEVEL: "slowest"
323+
KUBERNETES_CPU_REQUEST: 10
324+
KUBERNETES_MEMORY_REQUEST: 20Gi
325+
KUBERNETES_MEMORY_LIMIT: 20Gi
326+
script:
327+
- |
328+
set -euo pipefail
329+
mkdir -p "${CI_PROJECT_DIR}/custom-ddprof"
330+
SRCDIR="${CI_PROJECT_DIR}/java-profiler-src"
331+
rm -rf "$SRCDIR"
332+
git clone --depth 1 --branch "$JAVA_PROFILER_REF" https://github.com/DataDog/java-profiler.git "$SRCDIR"
333+
cd "$SRCDIR"
334+
chmod +x ./gradlew
335+
./gradlew --version
336+
./gradlew assembleRelease -Pskip-tests -Pskip-gtest
337+
JAR=$(ls ddprof-lib/build/libs/ddprof-*.jar | grep -v -- '-sources' | head -1)
338+
cp "$JAR" "${CI_PROJECT_DIR}/custom-ddprof/ddprof.jar"
339+
ls -la "${CI_PROJECT_DIR}/custom-ddprof/"
340+
artifacts:
341+
when: on_success
342+
paths:
343+
- custom-ddprof/ddprof.jar
344+
295345
build:
296346
needs:
347+
- job: build_java_profiler_ddprof
348+
optional: true
297349
- job: maven-central-pre-release-check
298350
optional: true
299351
- job: dd-octo-sts-pre-release-check
@@ -404,7 +456,9 @@ publish-artifacts-to-s3:
404456
spotless:
405457
extends: .gradle_build
406458
stage: tests
407-
needs: []
459+
needs:
460+
- job: build_java_profiler_ddprof
461+
optional: true
408462
variables:
409463
GRADLE_MEMORY_MAX: 6G
410464
script:
@@ -414,15 +468,19 @@ spotless:
414468
check-instrumentation-naming:
415469
extends: .gradle_build
416470
stage: tests
417-
needs: [ ]
471+
needs:
472+
- job: build_java_profiler_ddprof
473+
optional: true
418474
script:
419475
- ./gradlew --version
420476
- ./gradlew checkInstrumentationNaming
421477

422478
config-inversion-linter:
423479
extends: .gradle_build
424480
stage: tests
425-
needs: []
481+
needs:
482+
- job: build_java_profiler_ddprof
483+
optional: true
426484
script:
427485
- ./gradlew --version
428486
- ./gradlew checkConfigurations
@@ -431,7 +489,10 @@ test_published_artifacts:
431489
extends: .gradle_build
432490
image: ${BUILDER_IMAGE_REPO}:${BUILDER_IMAGE_VERSION_PREFIX}7 # Needs Java7 for some tests
433491
stage: tests
434-
needs: [ build ]
492+
needs:
493+
- job: build_java_profiler_ddprof
494+
optional: true
495+
- build
435496
variables:
436497
CACHE_TYPE: "lib"
437498
script:
@@ -458,7 +519,10 @@ test_published_artifacts:
458519

459520
.check_job:
460521
extends: .gradle_build
461-
needs: [ build ]
522+
needs:
523+
- job: build_java_profiler_ddprof
524+
optional: true
525+
- build
462526
stage: tests
463527
variables:
464528
CACHE_TYPE: "lib"
@@ -494,7 +558,9 @@ test_published_artifacts:
494558

495559
check_build_src:
496560
extends: .check_job
497-
needs: []
561+
needs:
562+
- job: build_java_profiler_ddprof
563+
optional: true
498564
variables:
499565
GRADLE_TARGET: ":buildSrc:build"
500566

@@ -529,7 +595,10 @@ check_debugger:
529595

530596
muzzle:
531597
extends: .gradle_build
532-
needs: [ build_tests ]
598+
needs:
599+
- job: build_java_profiler_ddprof
600+
optional: true
601+
- build_tests
533602
stage: tests
534603
parallel:
535604
matrix:
@@ -561,7 +630,10 @@ muzzle:
561630

562631
muzzle-dep-report:
563632
extends: .gradle_build
564-
needs: [ build_tests ]
633+
needs:
634+
- job: build_java_profiler_ddprof
635+
optional: true
636+
- build_tests
565637
stage: tests
566638
variables:
567639
CACHE_TYPE: "inst"
@@ -598,7 +670,10 @@ muzzle-dep-report:
598670
extends: .gradle_build
599671
image: ${BUILDER_IMAGE_REPO}:${BUILDER_IMAGE_VERSION_PREFIX}$testJvm
600672
tags: [ "docker-in-docker:amd64" ] # use docker-in-docker runner for testcontainers
601-
needs: [ build_tests ]
673+
needs:
674+
- job: build_java_profiler_ddprof
675+
optional: true
676+
- build_tests
602677
stage: tests
603678
variables:
604679
GRADLE_PARAMS: "-PskipFlakyTests"
@@ -896,7 +971,10 @@ deploy_to_di_backend:manual:
896971
deploy_to_maven_central:
897972
extends: .gradle_build
898973
stage: publish
899-
needs: [ build ]
974+
needs:
975+
- job: build_java_profiler_ddprof
976+
optional: true
977+
- build
900978
variables:
901979
CACHE_TYPE: "lib"
902980
rules:
@@ -924,7 +1002,10 @@ deploy_to_maven_central:
9241002
deploy_snapshot_with_ddprof_snapshot:
9251003
extends: .gradle_build
9261004
stage: publish
927-
needs: [ build ]
1005+
needs:
1006+
- job: build_java_profiler_ddprof
1007+
optional: true
1008+
- build
9281009
variables:
9291010
CACHE_TYPE: "lib"
9301011
rules:

0 commit comments

Comments
 (0)