Skip to content

Commit 79c4d11

Browse files
authored
Merge branch 'master' into smola/telemetry-logs-tags
2 parents 05a6834 + 6db7d82 commit 79c4d11

107 files changed

Lines changed: 1564 additions & 544 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.circleci/upload_ciapp.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ java_prop() {
2020
# Upload test results to CI Visibility
2121
junit_upload() {
2222
# based on tracer implementation: https://github.com/DataDog/dd-trace-java/blob/master/dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/TestDecorator.java#L55-L77
23+
# Overwriting the tag with the GitHub repo URL instead of the GitLab one. Otherwise, some Test Optimization features won't work.
2324
DD_API_KEY=$1 \
2425
datadog-ci junit upload --service $SERVICE_NAME \
2526
--logs \
@@ -30,6 +31,7 @@ junit_upload() {
3031
--tags "os.architecture:$(java_prop os.arch)" \
3132
--tags "os.platform:$(java_prop os.name)" \
3233
--tags "os.version:$(java_prop os.version)" \
34+
--tags "git.repository_url:https://github.com/DataDog/dd-trace-java" \
3335
./results
3436
}
3537

.github/workflows/README.md

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -115,16 +115,6 @@ _Action:_
115115

116116
_Notes:_ Results are sent on both production and staging environments.
117117

118-
### check-ci-pipelines [🔗](check-ci-pipelines.yaml)
119-
120-
_Trigger:_ When opening or updating a PR.
121-
122-
_Action:_ This action will check all other continuous integration jobs (Github action, Gitlab, CircleCi), and will fail if any of them fails.
123-
The purpose of this job is to be required for PR merges, achieving Green CI Policy.
124-
It got an `ignored` parameters to exclude some jobs if they are temprorary failing.
125-
126-
_Recovery:_ Manually trigger the action on the desired branch.
127-
128118
### comment-on-submodule-update [🔗](comment-on-submodule-update.yaml)
129119

130120
_Trigger:_ When creating a PR commits to `master` or a `release/*` branch with a Git Submodule update.

.github/workflows/analyze-changes.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
${{ runner.os }}-gradle-
4141
4242
- name: Initialize CodeQL
43-
uses: github/codeql-action/init@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
43+
uses: github/codeql-action/init@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
4444
with:
4545
languages: 'java'
4646
build-mode: 'manual'
@@ -57,7 +57,7 @@ jobs:
5757
--build-cache --parallel --stacktrace --no-daemon --max-workers=4
5858
5959
- name: Perform CodeQL Analysis and upload results to GitHub Security tab
60-
uses: github/codeql-action/analyze@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
60+
uses: github/codeql-action/analyze@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
6161

6262
trivy:
6363
name: Analyze changes with Trivy
@@ -109,7 +109,7 @@ jobs:
109109
ls -laR "./workspace/.trivy"
110110
111111
- name: Run Trivy security scanner
112-
uses: aquasecurity/trivy-action@6c175e9c4083a92bbca2f9724c8a5e33bc2d97a5 # v0.30.0
112+
uses: aquasecurity/trivy-action@76071ef0d7ec797419534a183b498b4d6366cf37 # v0.31.0
113113
with:
114114
scan-type: rootfs
115115
scan-ref: './workspace/.trivy/'
@@ -122,7 +122,7 @@ jobs:
122122
TRIVY_JAVA_DB_REPOSITORY: ghcr.io/aquasecurity/trivy-java-db,public.ecr.aws/aquasecurity/trivy-java-db
123123

124124
- name: Upload Trivy scan results to GitHub Security tab
125-
uses: github/codeql-action/upload-sarif@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
125+
uses: github/codeql-action/upload-sarif@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
126126
if: always()
127127
with:
128128
sarif_file: 'trivy-results.sarif'

.github/workflows/check-ci-pipelines.yml

Lines changed: 0 additions & 33 deletions
This file was deleted.

.github/workflows/run-system-tests.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,12 @@ jobs:
6262
scenarios_groups: tracer-release
6363
excluded_scenarios: CROSSED_TRACING_LIBRARIES,INTEGRATIONS_AWS,APM_TRACING_E2E_OTEL,APM_TRACING_E2E_SINGLE_SPAN,PROFILING # require AWS and datadog credentials
6464
skip_empty_scenarios: true
65+
66+
# Ensure the main job is run to completion
67+
check:
68+
name: Check system tests success
69+
runs-on: ubuntu-latest
70+
needs:
71+
- main
72+
steps:
73+
- run: exit 0

.github/workflows/update-docker-build-image.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
echo "::notice::Using Docker build image tag: ${TAG}"
5353
- name: Update the Docker build image in GitLab CI config
5454
run: |
55-
sed -i 's|BUILDER_IMAGE_VERSION_PREFIX:.*|BUILDER_IMAGE_VERSION_PREFIX:"${{ steps.define-tag.outputs.tag }}-"|' .gitlab-ci.yml
55+
sed -i '' -E 's|(BUILDER_IMAGE_VERSION_PREFIX:)[^#]*([#].*)|\1 "${{ steps.define-tag.outputs.tag }}-" \2|' .gitlab-ci.yml
5656
- name: Commit and push changes
5757
env:
5858
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

.gitlab-ci.yml

Lines changed: 65 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
include:
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

2219
variables:
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

145162
build:
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+
221270
spotless:
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

558612
test_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

569623
test_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

.gitlab/benchmarks.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
timeout: 1h
55
tags: ["runner:apm-k8s-tweaked-metal"]
66
image: 486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/benchmarking-platform:dd-trace-java-benchmarks
7-
needs: [ "build" ]
7+
needs: [ "build", "publish-artifacts-to-s3" ]
88
rules:
99
- if: '$POPULATE_CACHE'
1010
when: never
@@ -15,7 +15,7 @@
1515
script:
1616
- export ARTIFACTS_DIR="$(pwd)/reports" && mkdir -p "${ARTIFACTS_DIR}"
1717
- git config --global url."https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/".insteadOf "https://github.com/DataDog/"
18-
- git clone --branch dd-trace-java/tracer-benchmarks https://github.com/DataDog/benchmarking-platform.git /platform && cd /platform
18+
- git clone --branch dd-trace-java/tracer-benchmarks-parallel https://github.com/DataDog/benchmarking-platform.git /platform && cd /platform
1919
artifacts:
2020
name: "reports"
2121
paths:
@@ -85,7 +85,7 @@ benchmarks-post-results:
8585
interruptible: true
8686
timeout: 1h
8787
image: 486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/benchmarking-platform:java-dsm-kafka
88-
needs: [ "build" ]
88+
needs: [ "build", "publish-artifacts-to-s3"]
8989
script:
9090
- git clone --branch java/kafka-dsm-overhead https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/benchmarking-platform.git platform && cd platform
9191
- ./steps/run-benchmarks.sh
@@ -129,7 +129,7 @@ debugger-benchmarks:
129129
interruptible: true
130130
timeout: 1h
131131
image: 486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/benchmarking-platform:java-debugger
132-
needs: ["build"]
132+
needs: ["build", "publish-artifacts-to-s3"]
133133
script:
134134
- export ARTIFACTS_DIR="$(pwd)/reports" && mkdir -p "${ARTIFACTS_DIR}"
135135
- git clone --branch java/debugger-benchmarks https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/benchmarking-platform.git /platform && cd /platform

0 commit comments

Comments
 (0)