@@ -17,42 +17,13 @@ stages:
1717 - ci-visibility-tests
1818 - generate-signing-key
1919
20- # TODO display memory usage
21- # TODO test containers
22- # TODO paralization (muzzle)
23- # TODO publish tests to datadog
24- # TODO agent_integration_tests
25- # TODO no output timeout
26- # TODO xlarge_tests
27-
2820variables :
2921 REGISTRY : 486234852809.dkr.ecr.us-east-1.amazonaws.com
3022 BUILD_JOB_NAME : " build"
3123 DEPENDENCY_CACHE_POLICY : pull
3224 BUILD_CACHE_POLICY : pull
3325 GRADLE_VERSION : " 8.4" # must match gradle-wrapper.properties
3426 JAVA_BUILD_IMAGE_VERSION : " v25.01"
35- PROFILE_TESTS :
36- description : " Enable profiling of tests"
37- value : " false"
38- SYSTEM_TESTS_COMMIT :
39- description : " Commit hash of system tests to use"
40- value : " 8384a3947b9881d0fcdb5ac937b80aad9a70d4d4"
41-
42- .test_matrix : &test_matrix
43- - testJvm :
44- - " 8"
45- - " semeru11"
46- - " oracle8"
47- - " 21"
48- - " ubuntu17"
49- - " zulu8"
50- - " semeru8"
51- - " ibm8"
52- - " zulu11"
53- - " 11"
54- - " 17"
55- - " semeru17"
5627
5728default :
5829 tags : [ "arch:amd64" ]
@@ -115,16 +86,6 @@ build:
11586 reports :
11687 dotenv : build.env
11788
118- build_tests :
119- extends : .gradle_build
120- variables :
121- BUILD_CACHE_POLICY : push
122- BUILD_CACHE_TYPE : test
123- DEPENDENCY_CACHE_POLICY : pull
124- script :
125- - ./gradlew resolveAndLockAll --write-locks
126- - ./gradlew clean :baseTest :instrumentationTest :instrumentationLatestDepTest :instrumentationTest :profilingTest -PskipTests $GRADLE_ARGS
127-
12889build_and_populate_dep_cache :
12990 extends : build
13091 variables :
@@ -144,51 +105,6 @@ spotless:
144105 - export JAVA_HOME=$JAVA_11_HOME
145106 - ./gradlew spotlessCheck $GRADLE_ARGS
146107
147- .check_job :
148- extends : .gradle_build
149- needs : [ "build_tests" ]
150- stage : tests
151- rules :
152- - if : ' $POPULATE_CACHE'
153- when : never
154- - when : always # TODO change to on_success once build_tests is stable
155- variables :
156- BUILD_CACHE_TYPE : test
157- script :
158- - ./gradlew $GRADLE_TARGET -PskipTests -PrunBuildSrcTests -PskipSpotless $GRADLE_ARGS
159- after_script :
160- - .circleci/collect_reports.sh --destination ./check_reports --move
161- artifacts :
162- when : always
163- paths :
164- - ./check_reports
165- - ' .gradle/daemon/*/*.out.log'
166-
167- check_base :
168- extends : .check_job
169- variables :
170- GRADLE_TARGET : " :baseCheck"
171-
172- check_inst :
173- extends : .check_job
174- variables :
175- GRADLE_TARGET : " :instrumentationCheck"
176-
177- check_smoke :
178- extends : .check_job
179- variables :
180- GRADLE_TARGET : " :smokeCheck"
181-
182- check_profiling :
183- extends : .check_job
184- variables :
185- GRADLE_TARGET : " :profilingCheck"
186-
187- check_debugger :
188- extends : .check_job
189- variables :
190- GRADLE_TARGET : " :debuggerCheck"
191-
192108test_published_artifacts :
193109 extends : .gradle_build
194110 image : ghcr.io/datadog/dd-trace-java-docker-build:${JAVA_BUILD_IMAGE_VERSION}-7 # Needs Java7 for some tests
@@ -262,239 +178,6 @@ muzzle-dep-report:
262178 - ./reports
263179 - ' .gradle/daemon/*/*.out.log'
264180
265- .test_job :
266- extends : .gradle_build
267- image : ghcr.io/datadog/dd-trace-java-docker-build:$testJvm
268- needs : [ build_tests ]
269- stage : tests
270- rules :
271- - if : ' $POPULATE_CACHE'
272- when : never
273- - when : always # TODO change to on_success once build_tests is stable
274- variables :
275- BUILD_CACHE_TYPE : test
276- GRADLE_PARAMS : " "
277- CONTINUE_ON_FAILURE : " false"
278- script :
279- - >
280- if [ "$PROFILE_TESTS" == "true" ] && [ "$testJvm" != "ibm8" ] && [ "$testJvm" != "oracle8" ];
281- then
282- export PROFILER_COMMAND="-XX:StartFlightRecording=settings=profile,filename=/tmp/${CI_JOB_NAME_SLUG}.jfr,dumponexit=true";
283- fi
284- - export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xms2G -Xmx2G $PROFILER_COMMAND -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp' -Ddatadog.forkedMaxHeapSize=768M -Ddatadog.forkedMinHeapSize=128M"
285- - ./gradlew $GRADLE_TARGET $GRADLE_PARAMS -PtestJvm=$testJvm $GRADLE_ARGS --continue || $CONTINUE_ON_FAILURE
286- after_script :
287- - .circleci/collect_reports.sh
288- - if [ "$PROFILE_TESTS" == "true" ]; then .circleci/collect_profiles.sh; fi
289- - .circleci/collect_results.sh
290- - .circleci/upload_ciapp.sh tests $testJvm
291- # TODO Get APM Test Agent Trace Check Results
292- artifacts :
293- when : always
294- paths :
295- - ./reports.tar
296- - ./profiles.tar
297- - ./results
298- - ' .gradle/daemon/*/*.out.log'
299-
300- test_base :
301- extends : .test_job
302- variables :
303- GRADLE_TARGET : " :baseTest"
304- GRADLE_PARAMS : " -PskipFlakyTests"
305- parallel :
306- matrix : *test_matrix
307- script :
308- - if [ "$testJvm" == "8" ]; then export GRADLE_PARAMS="-PskipFlakyTests -PcheckCoverage"; fi
309- - !reference [.test_job, script]
310-
311- test_inst :
312- extends : .test_job
313- variables :
314- GRADLE_TARGET : " :instrumentationTest"
315- GRADLE_PARAMS : " -PskipFlakyTests"
316- parallel :
317- matrix : *test_matrix
318-
319- test_inst_latest :
320- extends : .test_job
321- variables :
322- GRADLE_TARGET : " :instrumentationLatestDepTest"
323- GRADLE_PARAMS : " -PskipFlakyTests"
324- parallel :
325- matrix :
326- - testJvm : ["8", "17", "21" ]
327-
328- test_flaky :
329- extends : .test_job
330- variables :
331- GRADLE_PARAMS : " -PrunFlakyTests"
332- testJvm : " 8"
333- CONTINUE_ON_FAILURE : " true"
334- parallel :
335- matrix :
336- - GRADLE_TARGET : [":baseTest", ":instrumentationTest", ":smokeTest", ":debuggerTest"]
337-
338- test_profiling :
339- extends : .test_job
340- variables :
341- GRADLE_TARGET : " :profilingTest"
342- GRADLE_PARAMS : " -PskipFlakyTests"
343- parallel :
344- matrix : *test_matrix
345-
346- test_debugger :
347- extends : .test_job
348- variables :
349- GRADLE_TARGET : " :debuggerTest"
350- GRADLE_PARAMS : " -PskipFlakyTests"
351- parallel :
352- matrix : *test_matrix
353-
354- test_smoke :
355- extends : .test_job
356- variables :
357- GRADLE_TARGET : " stageMainDist :smokeTest"
358- GRADLE_PARAMS : " -PskipFlakyTests"
359- parallel :
360- matrix : *test_matrix
361-
362- test_ssi_smoke :
363- extends : .test_job
364- variables :
365- GRADLE_TARGET : " stageMainDist :smokeTest"
366- GRADLE_PARAMS : " -PskipFlakyTests"
367- DD_INJECT_FORCE : " true"
368- DD_INJECTION_ENABLED : " tracer"
369- parallel :
370- matrix : *test_matrix
371-
372- test_smoke_graalvm :
373- extends : .test_job
374- variables :
375- GRADLE_TARGET : " stageMainDist :dd-smoke-test:spring-boot-3.0-native:test"
376- parallel :
377- matrix :
378- - testJvm : ["graalvm17", "graalvm21"]
379-
380- test_smoke_semeru8_debugger :
381- extends : .test_job
382- variables :
383- GRADLE_TARGET : " stageMainDist dd-smoke-tests:debugger-integration-tests:test"
384- GRADLE_PARAMS : " -PskipFlakyTests"
385- testJvm : " semeru8"
386-
387- .system-tests-job :
388- image : $SYSTEM_TESTS_IMAGE
389- tags : [ "runner:docker" ]
390- stage : tests
391- needs : [ build ]
392- rules :
393- - if : ' $POPULATE_CACHE'
394- when : never
395- - when : on_success
396- variables :
397- BUILD_CACHE_TYPE : lib
398- before_script :
399- - cd /system-tests
400- - git fetch origin $SYSTEM_TESTS_COMMIT
401- - git reset --hard FETCH_HEAD
402- - mkdir -p /system-tests/binaries/
403- - cp $CI_PROJECT_DIR/workspace/dd-java-agent/build/libs/*.jar /system-tests/binaries/
404- - cp $CI_PROJECT_DIR/workspace/dd-trace-api/build/libs/*.jar /system-tests/binaries/
405- - cd /system-tests
406- - export SYSTEM_TESTS_IDM_AWS_ACCESS_KEY_ID="" # TODO fix variable fetch
407- - export SYSTEM_TESTS_IDM_AWS_SECRET_ACCESS_KEY=""
408- - export SYSTEM_TESTS_E2E_DD_API_KEY=""
409- - export SYSTEM_TESTS_E2E_DD_APP_KEY=""
410- - export SYSTEM_TESTS_DD_API_KEY=""
411-
412- system-tests :
413- extends : .system-tests-job
414- parallel :
415- matrix :
416- - WEBLOG_VARIANT : ['akka-http', 'jersey-grizzly2', 'play', 'resteasy-netty3', 'ratpack', 'spring-boot', 'spring-boot-jetty', 'spring-boot-openliberty', 'spring-boot-payara', 'spring-boot-undertow', 'spring-boot-wildfly', 'uds-spring-boot', 'vertx3', 'vertx4']
417- SCENARIO : [ DEFAULT, APM_TRACING_E2E, APM_TRACING_E2E_SINGLE_SPAN, APPSEC_BLOCKING, APPSEC_REQUEST_BLOCKING, APPSEC_RASP, APPSEC_RUNTIME_ACTIVATION, REMOTE_CONFIG_MOCKED_BACKEND_ASM_DD ]
418- - WEBLOG_VARIANT : ['spring-boot-3-native']
419- SCENARIO : [ DEFAULT, APM_TRACING_E2E, APM_TRACING_E2E_SINGLE_SPAN ]
420- script :
421- - ./build.sh java --weblog-variant $WEBLOG_VARIANT
422- - >
423- if [[ $SCENARIO =~ .*_E2E.* ]]; then
424- export DD_SITE=datadoghq.com;
425- export DD_API_KEY=$SYSTEM_TESTS_E2E_DD_API_KEY;
426- export DD_APPLICATION_KEY=$SYSTEM_TESTS_E2E_DD_APP_KEY;
427- else
428- export DD_API_KEY=$SYSTEM_TESTS_DD_API_KEY;
429- fi
430- - echo "Running scenario $SCENARIO"
431- - ./run.sh $SCENARIO
432- after_script :
433- - |
434- mkdir -p artifacts
435- cd /system-tests
436- shopt -s nullglob
437- for log_dir in logs*; do
438- tar -cvzf ../artifacts/${log_dir}_${WEBLOG_VARIANT}.tar.gz $log_dir
439- done
440- artifacts :
441- when : always
442- paths :
443- - artifacts
444- - ' .gradle/daemon/*/*.out.log'
445-
446- integration-system-tests :
447- extends : .system-tests-job
448- script :
449- - ./build.sh --library java --weblog-variant spring-boot
450- - export AWS_ACCESS_KEY_ID="$SYSTEM_TESTS_IDM_AWS_ACCESS_KEY_ID"
451- - export AWS_SECRET_ACCESS_KEY="$SYSTEM_TESTS_IDM_AWS_SECRET_ACCESS_KEY"
452- - export AWS_REGION="us-east-1"
453- - export AWS_DEFAULT_REGION="us-east-1" # AWS services should use `AWS_REGION`, but some still use the older `AWS_DEFAULT_REGION`
454- - DD_SITE=datadoghq.com DD_API_KEY=$SYSTEM_TESTS_E2E_DD_API_KEY DD_APPLICATION_KEY=$SYSTEM_TESTS_E2E_DD_APP_KEY ./run.sh INTEGRATIONS
455- - DD_API_KEY=$SYSTEM_TESTS_DD_API_KEY ./run.sh CROSSED_TRACING_LIBRARIES
456- artifacts :
457- when : always
458- reports :
459- junit : /system-tests/logs_integrations/*.xml
460- paths :
461- - /system-tests/logs_integrations
462- - ' .gradle/daemon/*/*.out.log'
463-
464- debugger-system-tests :
465- extends : .system-tests-job
466- script :
467- - ./build.sh --library java --weblog-variant spring-boot
468- - DD_API_KEY=$SYSTEM_TESTS_E2E_DD_API_KEY ./run.sh DEBUGGER_SCENARIOS
469- after_script :
470- - |
471- mkdir -p logs_debugger
472- for dir in /system-tests/logs*/; do
473- cp -r "$dir" logs_debugger
474- done
475- artifacts :
476- when : always
477- reports :
478- junit : logs_debugger/*.xml
479- paths :
480- - logs_debugger
481- - ' .gradle/daemon/*/*.out.log'
482-
483- parametric-tests :
484- extends : .system-tests-job
485- script :
486- - ./build.sh -i runner
487- - timeout 20m ./run.sh PARAMETRIC --library java --durations=30 -vv
488- after_script :
489- - tar -cvzf logs_java_parametric_dev.tar.gz -C /system-tests logs_parametric
490- artifacts :
491- when : always
492- reports :
493- junit : /system-tests/logs_parametric/*.xml
494- paths :
495- - logs_java_parametric_dev.tar.gz
496- - ' .gradle/daemon/*/*.out.log'
497-
498181deploy_to_profiling_backend :
499182 stage : publish
500183 needs : [ build ]
0 commit comments