@@ -17,13 +17,17 @@ variables:
1717 rules :
1818 - if : ' $JDK_VERSION != null || $DEBUG_LEVEL != null || $HASH != null || $DOWNSTREAM != null'
1919 when : never
20- - if : ' $CI_PIPELINE_SOURCE == "trigger" || $CI_PIPELINE_SOURCE == "pipeline"'
21- when : on_success
20+ - if : ' $CI_PIPELINE_SOURCE == "schedule"'
21+ when : never
22+ - if : ' $CI_PIPELINE_SOURCE == "merge_request_event"'
23+ when : never
2224 - if : ' $CI_PIPELINE_SOURCE == "web"'
2325 when : manual
2426 allow_failure : true
25- - if : ' $CI_PIPELINE_SOURCE == "push"'
26- when : manual
27+ # Run automatically and non-blocking on any other source (push/trigger/api/
28+ # etc.) — mirrors the integration-test rules. The before_script CANCELLED
29+ # gate skips branches with no open PR.
30+ - when : on_success
2731 allow_failure : true
2832 script : |
2933 # setup the env
@@ -36,8 +40,8 @@ variables:
3640 if [ -z "${CANDIDATE_VERSION}" ]; then echo "Missing candidate version. Skipping."; exit 0; fi
3741
3842 # fetch the common platform scripts
39- git config --global url."https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/".insteadOf "https://github.com/DataDog/"
40- git clone --branch dd-trace-go https://github.com/DataDog/benchmarking-platform ${PLATFORM_DIR}
43+ git -c url."https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/".insteadOf= "https://github.com/DataDog/" \
44+ clone --branch dd-trace-go https://github.com/DataDog/benchmarking-platform ${PLATFORM_DIR}
4145
4246 # apply the specific step scripts
4347 cp -r .gitlab/benchmarks/steps/* ${PLATFORM_DIR}/steps/
@@ -52,7 +56,6 @@ variables:
5256 ${PLATFORM_DIR}/steps/run-benchmarks.sh
5357 ${PLATFORM_DIR}/steps/analyze-results.sh
5458 ${PLATFORM_DIR}/steps/upload-results-to-s3.sh
55- ${PLATFORM_DIR}/steps/post-pr-comment.sh
5659 parallel :
5760 matrix :
5861 - RUN_MODE : ["cpu", "wall", "alloc", "memleak", "cpu,wall", "memleak,alloc", "cpu,wall,alloc,memleak"]
@@ -76,6 +79,36 @@ benchmarks-candidate-aarch64:
7679 KUBERNETES_MEMORY_REQUEST : 200Gi
7780 KUBERNETES_MEMORY_LIMIT : 200Gi
7881
82+ post-benchmarks-pr-comment :
83+ extends : .retry-config
84+ stage : benchmarks
85+ tags : ["arch:arm64"]
86+ image : registry.ddbuild.io/images/dd-octo-sts-ci-base:2025.06-1
87+ id_tokens :
88+ DDOCTOSTS_ID_TOKEN :
89+ aud : dd-octo-sts
90+ needs :
91+ - job : prepare:start
92+ artifacts : true
93+ - job : benchmarks-candidate-amd64
94+ artifacts : true
95+ - job : benchmarks-candidate-aarch64
96+ artifacts : true
97+ rules :
98+ - if : ' $JDK_VERSION != null || $DEBUG_LEVEL != null || $HASH != null || $DOWNSTREAM != null'
99+ when : never
100+ - if : ' $CI_PIPELINE_SOURCE == "schedule"'
101+ when : never
102+ - if : ' $CI_PIPELINE_SOURCE == "merge_request_event"'
103+ when : never
104+ # Always run when the candidate jobs ran, regardless of source, so results
105+ # are posted back to the PR.
106+ - when : always
107+ timeout : 5m
108+ script :
109+ - .gitlab/benchmarks/post-pr-comment.sh reports
110+ allow_failure : true
111+
79112publish-benchmark-gh-pages :
80113 stage : benchmarks
81114 tags : ["arch:arm64"]
0 commit comments