Skip to content

Improve status reporting of e2e-test ci job. #646

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 54 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
e3bd1c0
Always publish to us-east-1.
purple4reina Apr 10, 2025
bcd9694
WIP
purple4reina Apr 24, 2025
35ab3f5
Publishes to us-west-2.
purple4reina Jun 13, 2025
a258935
Fix needs and update things.
purple4reina Jun 16, 2025
a6fcea9
Use underscore.
purple4reina Jun 17, 2025
bb556d1
No dot.
purple4reina Jun 17, 2025
b4e3b4a
Correct replace.
purple4reina Jun 17, 2025
0953779
Use variables.
purple4reina Jun 17, 2025
cf0ac9e
Properly get arn.
purple4reina Jun 17, 2025
4340b67
Just Trim.
purple4reina Jun 17, 2025
6416495
Multiline string.
purple4reina Jun 17, 2025
f214993
Change to template comment.
purple4reina Jun 17, 2025
041bb9a
No more multiline.
purple4reina Jun 17, 2025
6cd4b91
Remove comment?
purple4reina Jun 17, 2025
1dd8e36
Combine lines again.
purple4reina Jun 17, 2025
fac1c32
Move comment.
purple4reina Jun 17, 2025
b7ffa18
Another multiline.
purple4reina Jun 17, 2025
aaef324
Exit if not found.
purple4reina Jun 17, 2025
9816e4d
Set -x.
purple4reina Jun 17, 2025
0a3ff19
More debugging.
purple4reina Jun 17, 2025
5c6b64c
Even more debugging.
purple4reina Jun 17, 2025
8898773
Broaden regex.
purple4reina Jun 17, 2025
c6b953b
Subscript.
purple4reina Jun 17, 2025
5bda987
No more subscript.
purple4reina Jun 17, 2025
f6844fb
Artifacts true.
purple4reina Jun 17, 2025
49de9fd
Inherit dependencies and variables.
purple4reina Jun 17, 2025
5b29953
Add testing downstream branch.
purple4reina Jun 17, 2025
ae1fa34
Remove dependencies use variables.
purple4reina Jun 17, 2025
47fd32e
Use loop and main.
purple4reina Jun 17, 2025
58b9189
Uncomment other tests.
purple4reina Jun 17, 2025
5c05fc5
Cleanup version env vars.
purple4reina Jun 17, 2025
f92b03e
Whitespace cleanups.
purple4reina Jun 18, 2025
793e31c
Only deploy layers on success.
purple4reina Jun 18, 2025
0d81a40
Add e2e-status check.
purple4reina Jun 18, 2025
3afb253
Improve output of job.
purple4reina Jun 20, 2025
5b9c002
Needing publish loads dotenv artifact.
purple4reina Jun 20, 2025
14c8d5b
Have e2e-status job start right away then poll.
purple4reina Jun 20, 2025
692fcc9
Comment out tests for now.
purple4reina Jun 20, 2025
312b150
Use apk.
purple4reina Jun 20, 2025
1b03542
Debugging.
purple4reina Jun 20, 2025
4832760
Try JOB-TOKEN.
purple4reina Jun 20, 2025
16cb46f
Print out URL.
purple4reina Jun 20, 2025
66693af
Try bridges api.
purple4reina Jun 20, 2025
28bdf4b
Try GITLAB_API_TOKEN.
purple4reina Jun 20, 2025
5b76dcc
Use CI_JOB_STATUS to determine pass/fail.
purple4reina Jun 20, 2025
c7042e9
Remove switch.
purple4reina Jun 21, 2025
694e14f
Create dotenv file from publish script.
purple4reina Jun 30, 2025
9039707
Use docker docker image.
purple4reina Jun 30, 2025
0a4e02a
This needs not needed.
purple4reina Jun 30, 2025
61c6ebf
Push check status to file in e2e repo.
purple4reina Jun 30, 2025
2510813
Start status checking in test stage.
purple4reina Jun 30, 2025
ca4dd9f
Remove e2e-test-status job for now.
purple4reina Aug 12, 2025
bb19158
Improve test status reporting.
purple4reina Aug 12, 2025
b634b49
Improve status reporting of e2e-test ci job.
purple4reina Aug 12, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 44 additions & 6 deletions ci/input_files/build.yaml.tpl
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
{{- $e2e_region := "us-west-2" -}}

stages:
- build
- test
- sign
- publish
- e2e

.python-before-script: &python-before-script
- pip install virtualenv
Expand Down Expand Up @@ -56,11 +59,11 @@ check-layer-size ({{ $runtime.name }}-{{ $runtime.arch }}):
stage: test
tags: ["arch:amd64"]
image: registry.ddbuild.io/images/docker:20.10
needs:
needs:
- build-layer ({{ $runtime.name }}-{{ $runtime.arch }})
dependencies:
- build-layer ({{ $runtime.name }}-{{ $runtime.arch }})
script:
script:
- PYTHON_VERSION={{ $runtime.python_version }} ARCH={{ $runtime.arch }} ./scripts/check_layer_size.sh

lint python:
Expand All @@ -69,7 +72,7 @@ lint python:
image: registry.ddbuild.io/images/mirror/python:{{ $runtime.image }}
cache: &{{ $runtime.name }}-{{ $runtime.arch }}-cache
before_script: *python-before-script
script:
script:
- source venv/bin/activate
- ./scripts/check_format.sh

Expand All @@ -79,15 +82,15 @@ unit-test ({{ $runtime.name }}-{{ $runtime.arch }}):
image: registry.ddbuild.io/images/mirror/python:{{ $runtime.image }}
cache: &{{ $runtime.name }}-{{ $runtime.arch }}-cache
before_script: *python-before-script
script:
script:
- source venv/bin/activate
- pytest -vv

integration-test ({{ $runtime.name }}-{{ $runtime.arch }}):
stage: test
tags: ["arch:amd64"]
image: registry.ddbuild.io/images/docker:20.10-py3
needs:
needs:
- build-layer ({{ $runtime.name }}-{{ $runtime.arch }})
dependencies:
- build-layer ({{ $runtime.name }}-{{ $runtime.arch }})
Expand Down Expand Up @@ -132,16 +135,22 @@ sign-layer ({{ $runtime.name }}-{{ $runtime.arch }}):
- LAYER_FILE=datadog_lambda_py-{{ $runtime.arch}}-{{ $runtime.python_version }}.zip ./scripts/sign_layers.sh prod

{{ range $environment_name, $environment := (ds "environments").environments }}
{{ $dotenv := print $runtime.name "_" $runtime.arch "_" $environment_name ".env" }}

publish-layer-{{ $environment_name }} ({{ $runtime.name }}-{{ $runtime.arch }}):
stage: publish
tags: ["arch:amd64"]
image: registry.ddbuild.io/images/docker:20.10-py3
rules:
- if: '"{{ $environment_name }}" == "sandbox" && $REGION == "{{ $e2e_region }}" && "{{ $runtime.arch }}" == "amd64"'
when: on_success
- if: '"{{ $environment_name }}" == "sandbox"'
when: manual
allow_failure: true
- if: '$CI_COMMIT_TAG =~ /^v.*/'
artifacts:
reports:
dotenv: {{ $dotenv }}
needs:
{{ if or (eq $environment_name "prod") }}
- sign-layer ({{ $runtime.name }}-{{ $runtime.arch}})
Expand All @@ -166,7 +175,7 @@ publish-layer-{{ $environment_name }} ({{ $runtime.name }}-{{ $runtime.arch }}):
before_script:
- EXTERNAL_ID_NAME={{ $environment.external_id }} ROLE_TO_ASSUME={{ $environment.role_to_assume }} AWS_ACCOUNT={{ $environment.account }} source ./ci/get_secrets.sh
script:
- STAGE={{ $environment_name }} PYTHON_VERSION={{ $runtime.python_version }} ARCH={{ $runtime.arch }} ./ci/publish_layers.sh
- STAGE={{ $environment_name }} PYTHON_VERSION={{ $runtime.python_version }} ARCH={{ $runtime.arch }} DOTENV={{ $dotenv }} ./ci/publish_layers.sh

{{- end }}

Expand Down Expand Up @@ -232,3 +241,32 @@ signed layer bundle:
- rm -rf datadog_lambda_py-signed-bundle-${CI_JOB_ID}
- mkdir -p datadog_lambda_py-signed-bundle-${CI_JOB_ID}
- cp .layers/datadog_lambda_py-*.zip datadog_lambda_py-signed-bundle-${CI_JOB_ID}

e2e-test:
stage: e2e
trigger:
project: DataDog/serverless-e2e-tests
strategy: depend
variables:
LANGUAGES_SUBSET: python
# These env vars are inherited from the dotenv reports of the publish-layer jobs
{{- range (ds "runtimes").runtimes }}
{{- if eq .arch "amd64" }}
{{- $version := print (.name | strings.Trim "python") }}
PYTHON_{{ $version }}_VERSION: $PYTHON_{{ $version }}_VERSION
{{- end }}
{{- end }}
needs: {{ range (ds "runtimes").runtimes }}
{{- if eq .arch "amd64" }}
- "publish-layer-sandbox ({{ .name }}-{{ .arch }}): [{{ $e2e_region }}]"
{{- end }}
{{- end }}

e2e-test-status:
stage: test
image: registry.ddbuild.io/images/docker:20.10-py3
tags: ["arch:amd64"]
script:
- git clone -b rey.abolofia/status-check --single-branch https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.ddbuild.io/DataDog/serverless-e2e-tests
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note to self:
Remove the branch specifier once the PR in serverless-e2e-tests repo is merged.

- cd ./serverless-e2e-tests
- ./scripts/check_e2e_status.sh
8 changes: 8 additions & 0 deletions ci/publish_layers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@ fi
while [ $latest_version -lt $VERSION ]; do
latest_version=$(publish_layer $REGION $layer $aws_cli_python_version_key $layer_path)
printf "[$REGION] Published version $latest_version for layer $layer in region $REGION\n"
latest_arn=$(aws lambda get-layer-version --layer-name $layer --version-number $latest_version --region $REGION --query 'LayerVersionArn' --output text)
printf "[$REGION] Published arn $latest_arn\n"

# This shouldn't happen unless someone manually deleted the latest version, say 28, and
# then tries to republish 28 again. The published version would actually be 29, because
Expand All @@ -209,4 +211,10 @@ while [ $latest_version -lt $VERSION ]; do
fi
done

if [ -n "$DOTENV" ]; then
printf "[$REGION] Exporting layer version to $DOTENV file...\n"
echo "PYTHON_${PYTHON_VERSION/./}_VERSION=$latest_arn" >> "$DOTENV"
cat "$DOTENV"
fi

printf "[$REGION] Finished publishing layers...\n\n"