Skip to content

Commit e681f1e

Browse files
wantsuiclaudeNouemanKHAL
authored
Add evalya init (DataDog#24655)
* Add evalya init * Use registry.ddbuild.io and split evalya CI jobs into validate/release stages Addresses PR review feedback: point evalya at registry.ddbuild.io instead of the ECR path, and slot generate-pipeline/validate-manifests/run-tests into the validate stage with publish-metadata in release, instead of a single dedicated evalya stage. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * Gate evalya:publish-metadata to master/manual Reuse a rules anchor so the publish job doesn't push and sign images on every branch pipeline, matching the other signing jobs in this file. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * Update .gitlab-ci.yml Co-authored-by: NouemanKHAL <noueman.khalikine@datadoghq.com> * Remove duplicate rules key on evalya:publish-metadata A prior commit added the rules inline instead of the shared anchor, leaving two rules: keys on the same job. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * Add impact analysis. * Hardcode to evalya 0.15.0 so it can be manually upgraded later * Upgrade Evalya CI to v0.17.0 * Upgrade Evalya CI to v0.18.0 --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> Co-authored-by: NouemanKHAL <noueman.khalikine@datadoghq.com>
1 parent 8d78fd9 commit e681f1e

4 files changed

Lines changed: 97 additions & 0 deletions

File tree

.evalya-root

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
registry: registry.ddbuild.io/ci/integrations-core
2+
ci:
3+
impact:
4+
enabled: true

.evalya/gitlab-ci.yaml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Generated by evalya init — hidden GitLab CI templates.
2+
# Regenerate with `evalya init --force`. See .evalya/init.yml for config.
3+
variables:
4+
EVALYA_IMAGE: registry.ddbuild.io/ci/evalya:${EVALYA_TAG}
5+
EVALYA_TAG: v0.18.0
6+
.evalya:generate-pipeline:
7+
image: $EVALYA_IMAGE
8+
tags:
9+
- arch:amd64
10+
script:
11+
- sh /usr/local/share/evalya/scripts/generate-pipeline.sh -l "evalya.io/ci=e2e" --build-publish-tasks
12+
variables:
13+
DD_METRICS_TAGS: evalya:true,evalya-stage:generate
14+
artifacts:
15+
paths:
16+
- evalya-pipeline.yml
17+
- evalya-impact-summary.txt
18+
19+
.evalya:publish-metadata:
20+
image: $EVALYA_IMAGE
21+
tags:
22+
- arch:amd64
23+
id_tokens:
24+
DDSIGN_ID_TOKEN:
25+
aud: image-integrity
26+
before_script:
27+
- docker buildx create --driver docker-container --name evalya-builder --use || docker buildx use evalya-builder || true
28+
- docker buildx inspect --bootstrap > /dev/null 2>&1 || exit 75
29+
script:
30+
- evalya metadata publish --push --sign --platform linux/amd64,linux/arm64 --metadata-file /tmp/evalya-meta-buildx-metadata.json --tag "${CI_COMMIT_SHORT_SHA}" --tag "${CI_COMMIT_REF_NAME}"
31+
variables:
32+
DD_METRICS_TAGS: evalya:true,evalya-stage:publish
33+
34+
.evalya:run-tests:
35+
variables:
36+
PARENT_PIPELINE_SOURCE: $CI_PIPELINE_SOURCE
37+
trigger:
38+
include:
39+
- artifact: evalya-pipeline.yml
40+
job: evalya:generate-pipeline
41+
strategy: depend
42+
forward:
43+
pipeline_variables: true
44+
45+
.evalya:validate-manifests:
46+
image: $EVALYA_IMAGE
47+
tags:
48+
- arch:amd64
49+
script:
50+
- evalya manifest validate-all
51+
variables:
52+
DD_METRICS_TAGS: evalya:true,evalya-stage:validate

.evalya/init.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# evalya init configuration.
2+
# Regenerate with: evalya init --force
3+
version: v0.18.0
4+
registry: registry.ddbuild.io/ci/integrations-core
5+
ci:
6+
labels:
7+
- e2e
8+
generateStage: validate
9+
testStage: validate
10+
publishStage: release
11+
publishMeta: true
12+
evalyaTag: v0.18.0

.gitlab-ci.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
include:
22
- /.gitlab/software_composition_analysis.yaml
33
- /.gitlab/build_agent.yaml
4+
- local: .evalya/gitlab-ci.yaml
45

56
variables:
67
TAGGER_IMAGE: 486234852809.dkr.ecr.us-east-1.amazonaws.com/ci/integrations-core:tagger
@@ -17,6 +18,13 @@ stages:
1718
- release
1819
- notify
1920

21+
.master-or-manual-rules: &master-or-manual-rules
22+
- if: $CI_PIPELINE_SOURCE == 'schedule'
23+
when: never
24+
- if: $CI_COMMIT_BRANCH == 'master'
25+
- when: manual
26+
allow_failure: true
27+
2028
cache: &slack-cache
2129
key: integrations-core-slack-cache
2230
paths:
@@ -111,3 +119,24 @@ tagger-image-builder:
111119
- docker buildx build --tag $TAGGER_IMAGE -f .gitlab/tagger/Dockerfile . --push --metadata-file ${METADATA_FILE}
112120
- ddsign sign $TAGGER_IMAGE --docker-metadata-file ${METADATA_FILE}
113121
tags: [ "arch:amd64" ]
122+
123+
# --- BEGIN evalya (generated by evalya init) ---
124+
evalya:generate-pipeline:
125+
extends: .evalya:generate-pipeline
126+
stage: validate
127+
128+
evalya:validate-manifests:
129+
extends: .evalya:validate-manifests
130+
stage: validate
131+
132+
evalya:run-tests:
133+
extends: .evalya:run-tests
134+
stage: validate
135+
needs:
136+
- evalya:generate-pipeline
137+
138+
evalya:publish-metadata:
139+
extends: .evalya:publish-metadata
140+
stage: release
141+
rules: *master-or-manual-rules
142+
# --- END evalya ---

0 commit comments

Comments
 (0)