11include :
2- - project : DataDog/apm-reliability/libdatadog-build
3- ref : 0f677257308e1c379af490b754febfb40fa2c06d
4- file : templates/ci_authenticated_job.yml
52 - local : " .gitlab/one-pipeline.locked.yml"
63 - local : " .gitlab/benchmarks.yml"
74 - local : " .gitlab/macrobenchmarks.yml"
@@ -20,14 +17,18 @@ stages:
2017 - generate-signing-key
2118
2219variables :
20+ # Gitlab runner features; see https://docs.gitlab.com/runner/configuration/feature-flags.html
21+ # Fold and time all script sections
22+ FF_SCRIPT_SECTIONS : 1
23+
2324 REGISTRY : 486234852809.dkr.ecr.us-east-1.amazonaws.com
2425 BUILD_JOB_NAME : " build"
2526 DEPENDENCY_CACHE_POLICY : pull
2627 BUILD_CACHE_POLICY : pull
2728 GRADLE_VERSION : " 8.5" # must match gradle-wrapper.properties
2829 MAVEN_REPOSITORY_PROXY : " http://artifactual.artifactual.all-clusters.local-dc.fabric.dog:8081/repository/maven-central/"
2930 GRADLE_PLUGIN_PROXY : " http://artifactual.artifactual.all-clusters.local-dc.fabric.dog:8081/repository/gradle-plugin-portal-proxy/"
30- BUILDER_IMAGE_VERSION_PREFIX : " v25.05-"
31+ BUILDER_IMAGE_VERSION_PREFIX : " v25.06- " # use either an empty string (e.g. "") for latest images or a version followed by a hyphen (e.g. "v25. 05-")
3132 REPO_NOTIFICATION_CHANNEL : " #apm-java-escalations"
3233 DEFAULT_TEST_JVMS : /^(8|11|17|21)$/
3334 PROFILE_TESTS :
@@ -48,7 +49,6 @@ variables:
4849 - " 21"
4950 - " semeru11"
5051 - " oracle8"
51- - " ubuntu17"
5252 - " zulu8"
5353 - " semeru8"
5454 - " ibm8"
@@ -96,6 +96,12 @@ default:
9696 - ONE_INDEXED_NODE_INDEX=${CI_NODE_INDEX:-1}; export NORMALIZED_NODE_INDEX=$((ONE_INDEXED_NODE_INDEX - 1))
9797 - echo "NORMALIZED_NODE_TOTAL=${NORMALIZED_NODE_TOTAL}, NORMALIZED_NODE_INDEX=$NORMALIZED_NODE_INDEX"
9898
99+ .cgroup_info : &cgroup_info
100+ - source .gitlab/gitlab-utils.sh
101+ - gitlab_section_start "cgroup-info" "cgroup info"
102+ - .gitlab/cgroup-info.sh
103+ - gitlab_section_end "cgroup-info"
104+
99105.gradle_build : &gradle_build
100106 image : ghcr.io/datadog/dd-trace-java-docker-build:${BUILDER_IMAGE_VERSION_PREFIX}base
101107 stage : build
@@ -127,20 +133,31 @@ default:
127133 policy : $BUILD_CACHE_POLICY
128134 before_script :
129135 - source .gitlab/gitlab-utils.sh
130- - export GRADLE_USER_HOME=`pwd`/.gradle
136+ - mkdir -p .gradle
137+ - export GRADLE_USER_HOME=$(pwd)/.gradle
138+ - |
139+ # Don't put jvm args here as it will be picked up by child gradle processes used in tests
140+ cat << EOF > $GRADLE_USER_HOME/gradle.properties
141+ mavenRepositoryProxy=$MAVEN_REPOSITORY_PROXY
142+ gradlePluginProxy=$GRADLE_PLUGIN_PROXY
143+ EOF
144+ - |
145+ # replace maven central part by MAVEN_REPOSITORY_PROXY in .mvn/wrapper/maven-wrapper.properties
146+ sed -i "s|https://repo.maven.apache.org/maven2/|$MAVEN_REPOSITORY_PROXY|g" .mvn/wrapper/maven-wrapper.properties
131147 - 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 "
148+ - export GRADLE_ARGS=" --build-cache --stacktrace --no-daemon --parallel --max-workers=$GRADLE_WORKERS"
133149 - *normalize_node_index
134150 # for weird reasons, gradle will always "chmod 700" the .gradle folder
135151 # with Gitlab caching, .gradle is always owned by root and thus gradle's chmod invocation fails
136152 # This dance is a hack to have .gradle owned by the Gitlab runner user
137153 - gitlab_section_start "gradle-dance" "Fix .gradle directory permissions"
138- - mkdir -p .gradle
139154 - cp -r .gradle .gradle-copy
140155 - rm -rf .gradle
141156 - mv .gradle-copy .gradle
142157 - ls -la
143158 - gitlab_section_end "gradle-dance"
159+ after_script :
160+ - *cgroup_info
144161
145162build :
146163 extends : .gradle_build
@@ -218,6 +235,38 @@ populate_dep_cache:
218235# - GRADLE_TARGET: ":smokeTest"
219236# CACHE_TYPE: "smoke"
220237
238+ publish-artifacts-to-s3 :
239+ image : registry.ddbuild.io/images/mirror/amazon/aws-cli:2.4.29
240+ stage : publish
241+ needs : [ build ]
242+ script :
243+ - source upstream.env
244+ - export VERSION="${UPSTREAM_TRACER_VERSION%~*}" # remove ~githash from the end of version
245+ - 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
246+ - 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
247+ - 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
248+ - 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
249+ - 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
250+ - 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
251+ - |
252+ cat << EOF > links.json
253+ {
254+ "S3 Links": [
255+ {
256+ "external_link": {
257+ "label": "Public Link to dd-java-agent.jar",
258+ "url": "https://s3.us-east-1.amazonaws.com/dd-trace-java-builds/${CI_PIPELINE_ID}/dd-java-agent.jar"
259+ }
260+ }
261+ ]
262+ }
263+ EOF
264+ artifacts :
265+ reports :
266+ annotations :
267+ - links.json
268+
269+
221270spotless :
222271 extends : .gradle_build
223272 stage : tests
@@ -244,6 +293,7 @@ test_published_artifacts:
244293 - export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xmx1G -Xms1G -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp'"
245294 - ./gradlew check --info $GRADLE_ARGS
246295 after_script :
296+ - *cgroup_info
247297 - source .gitlab/gitlab-utils.sh
248298 - gitlab_section_start "collect-reports" "Collecting reports"
249299 - .circleci/collect_reports.sh
@@ -262,6 +312,7 @@ test_published_artifacts:
262312 script :
263313 - ./gradlew $GRADLE_TARGET -PskipTests -PrunBuildSrcTests -PskipSpotless -PtaskPartitionCount=$NORMALIZED_NODE_TOTAL -PtaskPartition=$NORMALIZED_NODE_INDEX $GRADLE_ARGS
264314 after_script :
315+ - *cgroup_info
265316 - source .gitlab/gitlab-utils.sh
266317 - gitlab_section_start "collect-reports" "Collecting reports"
267318 - .circleci/collect_reports.sh --destination ./check_reports --move
@@ -320,8 +371,9 @@ muzzle:
320371 - ./gradlew writeMuzzleTasksToFile $GRADLE_ARGS
321372 - sort workspace/build/muzzleTasks > sortedMuzzleTasks
322373 - split --number=l/$NORMALIZED_NODE_TOTAL --suffix-length=1 --numeric-suffixes sortedMuzzleTasks muzzleSplit
323- - ./gradlew ` cat muzzleSplit${NORMALIZED_NODE_INDEX} | xargs` $GRADLE_ARGS
374+ - ./gradlew $( cat muzzleSplit${NORMALIZED_NODE_INDEX} | xargs) $GRADLE_ARGS
324375 after_script :
376+ - *cgroup_info
325377 - source .gitlab/gitlab-utils.sh
326378 - gitlab_section_start "collect-reports" "Collecting reports"
327379 - .circleci/collect_reports.sh
@@ -342,6 +394,7 @@ muzzle-dep-report:
342394 - export SKIP_BUILDSCAN="true"
343395 - ./gradlew generateMuzzleReport muzzleInstrumentationReport $GRADLE_ARGS
344396 after_script :
397+ - *cgroup_info
345398 - .circleci/collect_muzzle_deps.sh
346399 artifacts :
347400 when : always
@@ -401,6 +454,7 @@ muzzle-dep-report:
401454 after_script :
402455 - *restore_pretest_env
403456 - *set_datadog_api_keys
457+ - *cgroup_info
404458 - source .gitlab/gitlab-utils.sh
405459 - gitlab_section_start "collect-reports" "Collecting reports"
406460 - .circleci/collect_reports.sh
@@ -553,7 +607,7 @@ test_smoke:
553607 GRADLE_PARAMS : " -PskipFlakyTests"
554608 CACHE_TYPE : " smoke"
555609 parallel :
556- matrix : *test_matrix_2
610+ matrix : *test_matrix_4
557611
558612test_ssi_smoke :
559613 extends : .test_job
@@ -564,7 +618,7 @@ test_ssi_smoke:
564618 DD_INJECT_FORCE : " true"
565619 DD_INJECTION_ENABLED : " tracer"
566620 parallel :
567- matrix : *test_matrix_2
621+ matrix : *test_matrix_4
568622
569623test_smoke_graalvm :
570624 extends : .test_job
@@ -742,37 +796,3 @@ create_key:
742796 expire_in : 13 mos
743797 paths :
744798 - pubkeys
745-
746- tracer-base-image-release :
747- extends : .ci_authenticated_job
748- stage : publish
749- needs : [ build ]
750- rules :
751- - if : ' $POPULATE_CACHE'
752- when : never
753- - if : ' $CI_COMMIT_TAG =~ /^v1\..*/'
754- when : on_success
755- dependencies :
756- - build
757- script :
758- - echo $GH_TOKEN|docker login ghcr.io/datadog -u uploader --password-stdin
759- - mkdir -p ./tooling/ci/binaries/ && cp workspace/dd-java-agent/build/libs/*.jar ./tooling/ci/binaries/dd-java-agent.jar
760- - docker buildx build -t ghcr.io/datadog/dd-trace-java/dd-trace-java:latest -f ./tooling/ci/Dockerfile .
761- - docker push ghcr.io/datadog/dd-trace-java/dd-trace-java:latest
762-
763- tracer-base-image-snapshot :
764- extends : .ci_authenticated_job
765- stage : publish
766- needs : [ build ]
767- rules :
768- - if : ' $POPULATE_CACHE'
769- when : never
770- - if : ' $CI_COMMIT_BRANCH == "master"'
771- when : on_success
772- dependencies :
773- - build
774- script :
775- - echo $GH_TOKEN|docker login ghcr.io/datadog -u uploader --password-stdin
776- - mkdir -p ./tooling/ci/binaries/ && cp workspace/dd-java-agent/build/libs/*.jar ./tooling/ci/binaries/dd-java-agent.jar
777- - docker buildx build -t ghcr.io/datadog/dd-trace-java/dd-trace-java:latest_snapshot -f ./tooling/ci/Dockerfile .
778- - docker push ghcr.io/datadog/dd-trace-java/dd-trace-java:latest_snapshot
0 commit comments