Skip to content

Commit 89689b8

Browse files
authored
ci(benchmarks): group benchmarks into parent-child pipelines to ease retrigerring (#12390)
Clean up Gitlab benchmarking pipeline in order to ease retrigerring in Gitlab UI.
1 parent 4926d85 commit 89689b8

File tree

4 files changed

+50
-34
lines changed

4 files changed

+50
-34
lines changed

Diff for: .gitlab-ci.yml

+19-4
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ stages:
33
- tests
44
- shared-pipeline
55
- benchmarks
6-
- macrobenchmarks
7-
- benchmarks-report
86
- release
97

108
variables:
@@ -17,11 +15,10 @@ default:
1715
include:
1816
- remote: https://gitlab-templates.ddbuild.io/libdatadog/include/one-pipeline.yml
1917
- local: ".gitlab/services.yml" # Include early so others can use the definitions
20-
- local: ".gitlab/benchmarks.yml"
2118
- local: ".gitlab/package.yml"
22-
- local: ".gitlab/macrobenchmarks.yml"
2319
- local: ".gitlab/release.yml"
2420
- local: ".gitlab/testrunner.yml"
21+
- local: ".gitlab/benchmarks/serverless.yml"
2522

2623
tests-gen:
2724
stage: tests
@@ -43,6 +40,24 @@ run-tests-trigger:
4340
- artifact: .gitlab/tests-gen.yml
4441
job: tests-gen
4542
strategy: depend
43+
44+
microbenchmarks:
45+
stage: benchmarks
46+
needs: [ ]
47+
trigger:
48+
include: .gitlab/benchmarks/microbenchmarks.yml
49+
strategy: depend
50+
51+
macrobenchmarks:
52+
stage: benchmarks
53+
needs: [ ]
54+
trigger:
55+
include: .gitlab/benchmarks/macrobenchmarks.yml
56+
allow_failure: true
57+
rules:
58+
- if: $CI_PIPELINE_SOURCE == "schedule"
59+
when: always
60+
- when: manual
4661

4762
check_new_flaky_tests:
4863
stage: tests

Diff for: .gitlab/macrobenchmarks.yml renamed to .gitlab/benchmarks/macrobenchmarks.yml

+5-9
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1+
stages:
2+
- test
3+
14
variables:
25
MACROBENCHMARKS_CI_IMAGE: 486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/benchmarking-platform:dd-trace-py-macrobenchmarks
36

47
.macrobenchmarks:
5-
stage: macrobenchmarks
8+
stage: test
69
needs: []
710
tags: ["runner:apm-k8s-same-cpu"]
811
timeout: 1h
@@ -14,14 +17,7 @@ variables:
1417
- runner_system_failure
1518
- scheduler_failure
1619
- api_failure
17-
rules:
18-
- if: $CI_PIPELINE_SOURCE == "schedule"
19-
when: always
20-
- when: manual
21-
## Next step, enable:
22-
# - if: $CI_COMMIT_REF_NAME == "main"
23-
# when: always
24-
# If you have a problem with Gitlab cache, see Troubleshooting section in Benchmarking Platform docs
20+
when: on_success
2521
image: $MACROBENCHMARKS_CI_IMAGE
2622
script: |
2723
git clone --branch python/macrobenchmarks https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/benchmarking-platform platform && cd platform

Diff for: .gitlab/benchmarks.yml renamed to .gitlab/benchmarks/microbenchmarks.yml

+7-21
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1+
stages:
2+
- test
3+
- report
4+
15
variables:
26
MICROBENCHMARKS_CI_IMAGE: 486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/benchmarking-platform:dd-trace-py
3-
SLS_CI_IMAGE: registry.ddbuild.io/ci/serverless-tools:1
47

58
.benchmarks:
6-
stage: benchmarks
9+
stage: test
710
when: on_success
811
tags: ["runner:apm-k8s-tweaked-metal"]
912
image: $MICROBENCHMARKS_CI_IMAGE
@@ -60,7 +63,7 @@ microbenchmarks:
6063
benchmarks-pr-comment:
6164
image: $MICROBENCHMARKS_CI_IMAGE
6265
tags: ["arch:amd64"]
63-
stage: benchmarks-report
66+
stage: report
6467
when: always
6568
script:
6669
- export REPORTS_DIR="$(pwd)/reports/" && (mkdir "${REPORTS_DIR}" || :)
@@ -78,7 +81,7 @@ benchmarks-pr-comment:
7881
KUBERNETES_SERVICE_ACCOUNT_OVERWRITE: dd-trace-py
7982

8083
check-big-regressions:
81-
stage: benchmarks-report
84+
stage: report
8285
when: always
8386
tags: ["arch:amd64"]
8487
image: $MICROBENCHMARKS_CI_IMAGE
@@ -90,20 +93,3 @@ check-big-regressions:
9093
variables:
9194
# Gitlab and BP specific env vars. Do not modify.
9295
KUBERNETES_SERVICE_ACCOUNT_OVERWRITE: dd-trace-py
93-
94-
benchmark-serverless:
95-
stage: benchmarks
96-
trigger:
97-
project: DataDog/serverless-tools
98-
strategy: depend
99-
needs: []
100-
variables:
101-
UPSTREAM_PIPELINE_ID: $CI_PIPELINE_ID
102-
UPSTREAM_PROJECT_URL: $CI_PROJECT_URL
103-
UPSTREAM_COMMIT_BRANCH: $CI_COMMIT_BRANCH
104-
UPSTREAM_COMMIT_AUTHOR: $CI_COMMIT_AUTHOR
105-
UPSTREAM_COMMIT_TITLE: $CI_COMMIT_TITLE
106-
UPSTREAM_COMMIT_TAG: $CI_COMMIT_TAG
107-
UPSTREAM_PROJECT_NAME: $CI_PROJECT_NAME
108-
UPSTREAM_GITLAB_USER_LOGIN: $GITLAB_USER_LOGIN
109-
UPSTREAM_GITLAB_USER_EMAIL: $GITLAB_USER_EMAIL

Diff for: .gitlab/benchmarks/serverless.yml

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
variables:
2+
SLS_CI_IMAGE: registry.ddbuild.io/ci/serverless-tools:1
3+
4+
benchmark-serverless:
5+
stage: benchmarks
6+
trigger:
7+
project: DataDog/serverless-tools
8+
strategy: depend
9+
needs: []
10+
variables:
11+
UPSTREAM_PIPELINE_ID: $CI_PIPELINE_ID
12+
UPSTREAM_PROJECT_URL: $CI_PROJECT_URL
13+
UPSTREAM_COMMIT_BRANCH: $CI_COMMIT_BRANCH
14+
UPSTREAM_COMMIT_AUTHOR: $CI_COMMIT_AUTHOR
15+
UPSTREAM_COMMIT_TITLE: $CI_COMMIT_TITLE
16+
UPSTREAM_COMMIT_TAG: $CI_COMMIT_TAG
17+
UPSTREAM_PROJECT_NAME: $CI_PROJECT_NAME
18+
UPSTREAM_GITLAB_USER_LOGIN: $GITLAB_USER_LOGIN
19+
UPSTREAM_GITLAB_USER_EMAIL: $GITLAB_USER_EMAIL

0 commit comments

Comments
 (0)