@@ -20,14 +20,18 @@ stages:
2020 - generate-signing-key
2121
2222variables :
23+ # Gitlab runner features; see https://docs.gitlab.com/runner/configuration/feature-flags.html
24+ # Fold and time all script sections
25+ FF_SCRIPT_SECTIONS : 1
26+
2327 REGISTRY : 486234852809.dkr.ecr.us-east-1.amazonaws.com
2428 BUILD_JOB_NAME : " build"
2529 DEPENDENCY_CACHE_POLICY : pull
2630 BUILD_CACHE_POLICY : pull
2731 GRADLE_VERSION : " 8.5" # must match gradle-wrapper.properties
2832 MAVEN_REPOSITORY_PROXY : " http://artifactual.artifactual.all-clusters.local-dc.fabric.dog:8081/repository/maven-central/"
2933 GRADLE_PLUGIN_PROXY : " http://artifactual.artifactual.all-clusters.local-dc.fabric.dog:8081/repository/gradle-plugin-portal-proxy/"
30- JAVA_BUILD_IMAGE_VERSION : " v25.05"
34+ BUILDER_IMAGE_VERSION_PREFIX : " " # use either an empty string (e.g. "") for latest images or a version followed by a hyphen (e.g. " v25.05-")
3135 REPO_NOTIFICATION_CHANNEL : " #apm-java-escalations"
3236 DEFAULT_TEST_JVMS : /^(8|11|17|21)$/
3337 PROFILE_TESTS :
@@ -48,7 +52,6 @@ variables:
4852 - " 21"
4953 - " semeru11"
5054 - " oracle8"
51- - " ubuntu17"
5255 - " zulu8"
5356 - " semeru8"
5457 - " ibm8"
@@ -96,8 +99,14 @@ default:
9699 - ONE_INDEXED_NODE_INDEX=${CI_NODE_INDEX:-1}; export NORMALIZED_NODE_INDEX=$((ONE_INDEXED_NODE_INDEX - 1))
97100 - echo "NORMALIZED_NODE_TOTAL=${NORMALIZED_NODE_TOTAL}, NORMALIZED_NODE_INDEX=$NORMALIZED_NODE_INDEX"
98101
102+ .cgroup_info : &cgroup_info
103+ - source .gitlab/gitlab-utils.sh
104+ - gitlab_section_start "cgroup-info" "cgroup info"
105+ - .gitlab/cgroup-info.sh
106+ - gitlab_section_end "cgroup-info"
107+
99108.gradle_build : &gradle_build
100- image : ghcr.io/datadog/dd-trace-java-docker-build:${JAVA_BUILD_IMAGE_VERSION}- base
109+ image : ghcr.io/datadog/dd-trace-java-docker-build:${BUILDER_IMAGE_VERSION_PREFIX} base
101110 stage : build
102111 variables :
103112 MAVEN_OPTS : " -Xms64M -Xmx512M"
@@ -127,20 +136,31 @@ default:
127136 policy : $BUILD_CACHE_POLICY
128137 before_script :
129138 - source .gitlab/gitlab-utils.sh
130- - export GRADLE_USER_HOME=`pwd`/.gradle
139+ - mkdir -p .gradle
140+ - export GRADLE_USER_HOME=$(pwd)/.gradle
141+ - |
142+ # Don't put jvm args here as it will be picked up by child gradle processes used in tests
143+ cat << EOF > $GRADLE_USER_HOME/gradle.properties
144+ mavenRepositoryProxy=$MAVEN_REPOSITORY_PROXY
145+ gradlePluginProxy=$GRADLE_PLUGIN_PROXY
146+ EOF
147+ - |
148+ # replace maven central part by MAVEN_REPOSITORY_PROXY in .mvn/wrapper/maven-wrapper.properties
149+ sed -i "s|https://repo.maven.apache.org/maven2/|$MAVEN_REPOSITORY_PROXY|g" .mvn/wrapper/maven-wrapper.properties
131150 - export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xmx$GRADLE_MEM -Xms$GRADLE_MEM -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp'"
132- - export GRADLE_ARGS=" --build-cache --stacktrace --no-daemon --parallel --max-workers=$GRADLE_WORKERS -PmavenRepositoryProxy=$MAVEN_REPOSITORY_PROXY -PgradlePluginProxy=$GRADLE_PLUGIN_PROXY "
151+ - export GRADLE_ARGS=" --build-cache --stacktrace --no-daemon --parallel --max-workers=$GRADLE_WORKERS"
133152 - *normalize_node_index
134153 # for weird reasons, gradle will always "chmod 700" the .gradle folder
135154 # with Gitlab caching, .gradle is always owned by root and thus gradle's chmod invocation fails
136155 # This dance is a hack to have .gradle owned by the Gitlab runner user
137156 - gitlab_section_start "gradle-dance" "Fix .gradle directory permissions"
138- - mkdir -p .gradle
139157 - cp -r .gradle .gradle-copy
140158 - rm -rf .gradle
141159 - mv .gradle-copy .gradle
142160 - ls -la
143161 - gitlab_section_end "gradle-dance"
162+ after_script :
163+ - *cgroup_info
144164
145165build :
146166 extends : .gradle_build
@@ -218,6 +238,38 @@ populate_dep_cache:
218238# - GRADLE_TARGET: ":smokeTest"
219239# CACHE_TYPE: "smoke"
220240
241+ publish-artifacts-to-s3 :
242+ image : registry.ddbuild.io/images/mirror/amazon/aws-cli:2.4.29
243+ stage : publish
244+ needs : [ build ]
245+ script :
246+ - source upstream.env
247+ - export VERSION="${UPSTREAM_TRACER_VERSION%~*}" # remove ~githash from the end of version
248+ - aws s3 cp workspace/dd-java-agent/build/libs/dd-java-agent-${VERSION}.jar s3://dd-trace-java-builds/${CI_COMMIT_REF_NAME}/dd-java-agent.jar
249+ - aws s3 cp workspace/dd-trace-api/build/libs/dd-trace-api-${VERSION}.jar s3://dd-trace-java-builds/${CI_COMMIT_REF_NAME}/dd-trace-api.jar
250+ - aws s3 cp workspace/dd-trace-ot/build/libs/dd-trace-ot-${VERSION}.jar s3://dd-trace-java-builds/${CI_COMMIT_REF_NAME}/dd-trace-ot.jar
251+ - aws s3 cp workspace/dd-java-agent/build/libs/dd-java-agent-${VERSION}.jar s3://dd-trace-java-builds/${CI_PIPELINE_ID}/dd-java-agent.jar
252+ - aws s3 cp workspace/dd-trace-api/build/libs/dd-trace-api-${VERSION}.jar s3://dd-trace-java-builds/${CI_PIPELINE_ID}/dd-trace-api.jar
253+ - aws s3 cp workspace/dd-trace-ot/build/libs/dd-trace-ot-${VERSION}.jar s3://dd-trace-java-builds/${CI_PIPELINE_ID}/dd-trace-ot.jar
254+ - |
255+ cat << EOF > links.json
256+ {
257+ "S3 Links": [
258+ {
259+ "external_link": {
260+ "label": "Public Link to dd-java-agent.jar",
261+ "url": "https://s3.us-east-1.amazonaws.com/dd-trace-java-builds/${CI_PIPELINE_ID}/dd-java-agent.jar"
262+ }
263+ }
264+ ]
265+ }
266+ EOF
267+ artifacts :
268+ reports :
269+ annotations :
270+ - links.json
271+
272+
221273spotless :
222274 extends : .gradle_build
223275 stage : tests
@@ -228,7 +280,7 @@ spotless:
228280
229281test_published_artifacts :
230282 extends : .gradle_build
231- image : ghcr.io/datadog/dd-trace-java-docker-build:${JAVA_BUILD_IMAGE_VERSION}- 7 # Needs Java7 for some tests
283+ image : ghcr.io/datadog/dd-trace-java-docker-build:${BUILDER_IMAGE_VERSION_PREFIX} 7 # Needs Java7 for some tests
232284 stage : tests
233285 needs : [ build ]
234286 variables :
@@ -244,6 +296,7 @@ test_published_artifacts:
244296 - export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xmx1G -Xms1G -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp'"
245297 - ./gradlew check --info $GRADLE_ARGS
246298 after_script :
299+ - *cgroup_info
247300 - source .gitlab/gitlab-utils.sh
248301 - gitlab_section_start "collect-reports" "Collecting reports"
249302 - .circleci/collect_reports.sh
@@ -262,6 +315,7 @@ test_published_artifacts:
262315 script :
263316 - ./gradlew $GRADLE_TARGET -PskipTests -PrunBuildSrcTests -PskipSpotless -PtaskPartitionCount=$NORMALIZED_NODE_TOTAL -PtaskPartition=$NORMALIZED_NODE_INDEX $GRADLE_ARGS
264317 after_script :
318+ - *cgroup_info
265319 - source .gitlab/gitlab-utils.sh
266320 - gitlab_section_start "collect-reports" "Collecting reports"
267321 - .circleci/collect_reports.sh --destination ./check_reports --move
@@ -320,8 +374,9 @@ muzzle:
320374 - ./gradlew writeMuzzleTasksToFile $GRADLE_ARGS
321375 - sort workspace/build/muzzleTasks > sortedMuzzleTasks
322376 - split --number=l/$NORMALIZED_NODE_TOTAL --suffix-length=1 --numeric-suffixes sortedMuzzleTasks muzzleSplit
323- - ./gradlew ` cat muzzleSplit${NORMALIZED_NODE_INDEX} | xargs` $GRADLE_ARGS
377+ - ./gradlew $( cat muzzleSplit${NORMALIZED_NODE_INDEX} | xargs) $GRADLE_ARGS
324378 after_script :
379+ - *cgroup_info
325380 - source .gitlab/gitlab-utils.sh
326381 - gitlab_section_start "collect-reports" "Collecting reports"
327382 - .circleci/collect_reports.sh
@@ -342,6 +397,7 @@ muzzle-dep-report:
342397 - export SKIP_BUILDSCAN="true"
343398 - ./gradlew generateMuzzleReport muzzleInstrumentationReport $GRADLE_ARGS
344399 after_script :
400+ - *cgroup_info
345401 - .circleci/collect_muzzle_deps.sh
346402 artifacts :
347403 when : always
@@ -366,7 +422,7 @@ muzzle-dep-report:
366422
367423.test_job :
368424 extends : .gradle_build
369- image : ghcr.io/datadog/dd-trace-java-docker-build:$testJvm
425+ image : ghcr.io/datadog/dd-trace-java-docker-build:${BUILDER_IMAGE_VERSION_PREFIX}$ testJvm
370426 tags : [ "docker-in-docker:amd64" ] # use docker-in-docker runner for testcontainers
371427 needs : [ build_tests ]
372428 stage : tests
@@ -387,7 +443,7 @@ muzzle-dep-report:
387443 when : on_success
388444 - if : $NON_DEFAULT_JVMS == "true"
389445 when : on_success
390- - if : $CI_PIPELINE_SOURCE == "schedule "
446+ - if : $CI_COMMIT_BRANCH == "master "
391447 when : on_success
392448 script :
393449 - >
@@ -401,6 +457,7 @@ muzzle-dep-report:
401457 after_script :
402458 - *restore_pretest_env
403459 - *set_datadog_api_keys
460+ - *cgroup_info
404461 - source .gitlab/gitlab-utils.sh
405462 - gitlab_section_start "collect-reports" "Collecting reports"
406463 - .circleci/collect_reports.sh
@@ -553,20 +610,18 @@ test_smoke:
553610 GRADLE_PARAMS : " -PskipFlakyTests"
554611 CACHE_TYPE : " smoke"
555612 parallel :
556- matrix : *test_matrix_2
613+ matrix : *test_matrix_4
557614
558615test_ssi_smoke :
559616 extends : .test_job
560- rules :
561- - if : $CI_PIPELINE_SOURCE == "schedule"
562- when : on_success
617+ rules : *master_only
563618 variables :
564619 GRADLE_TARGET : " stageMainDist :smokeTest"
565620 CACHE_TYPE : " smoke"
566621 DD_INJECT_FORCE : " true"
567622 DD_INJECTION_ENABLED : " tracer"
568623 parallel :
569- matrix : *test_matrix_2
624+ matrix : *test_matrix_4
570625
571626test_smoke_graalvm :
572627 extends : .test_job
0 commit comments