@@ -14,6 +14,11 @@ default:
1414 # Retry when the runner fails to start
1515 - runner_system_failure
1616
17+ # The Noble Python image uses managed system Python and does not include AWS CLI.
18+ .install -python-tools: &install-python-tools
19+ - apt-get update
20+ - apt-get install -y --no-install-recommends awscli python3-venv python-is-python3
21+
1722# This is for serverless framework
1823.install -node: &install-node
1924 - apt-get update
@@ -38,7 +43,7 @@ default:
3843build-layer ({{ $runtime .name }}-{{ $runtime .arch }}):
3944 stage: build
4045 tags: [" arch:amd64" ]
41- image: registry.ddbuild.io /images/docker:20 .10
46+ image: registry.ddbuild.io /images/docker:27 .3.1 @sha256:966b6cd18c53e3730e7aaea2c0ca6b6b9877dcff11d9446f25ee5bc2293585d0
4247 artifacts:
4348 expire_in: 1 day # Unsigned zips expire in 1 day
4449 paths:
@@ -53,7 +58,7 @@ build-layer ({{ $runtime.name }}-{{ $runtime.arch }}):
5358check-layer-size ({{ $runtime .name }}-{{ $runtime .arch }}):
5459 stage: test
5560 tags: [" arch:amd64" ]
56- image: registry.ddbuild.io /images/docker:20 .10
61+ image: registry.ddbuild.io /images/docker:27 .3.1 @sha256:966b6cd18c53e3730e7aaea2c0ca6b6b9877dcff11d9446f25ee5bc2293585d0
5762 needs:
5863 - build-layer ({{ $runtime .name }}-{{ $runtime .arch }})
5964 dependencies:
@@ -99,7 +104,7 @@ unit-test ({{ $runtime.name }}-{{ $runtime.arch }}):
99104integration-test ({{ $runtime .name }}-{{ $runtime .arch }}):
100105 stage: test
101106 tags: [" arch:amd64" ]
102- image: registry.ddbuild.io /images/docker:20 .10 - py3
107+ image: registry.ddbuild.io /images/docker:29 .4.0 -noble- py3@sha256:a1e09b5d90ac6c8576313064f1b0e5809ba718355715fb43a832ea7aa1ec7b70
103108 rules:
104109 - if : '$SKIP_E2E_TESTS == " true" '
105110 when: never
@@ -112,6 +117,7 @@ integration-test ({{ $runtime.name }}-{{ $runtime.arch }}):
112117 variables:
113118 CI_ENABLE_CONTAINER_IMAGE_BUILDS: " true"
114119 before_script:
120+ - *install-python-tools
115121 - *install-node
116122 - EXTERNAL_ID_NAME= integration-test-externalid ROLE_TO_ASSUME= sandbox-integration-test-deployer AWS_ACCOUNT= 425362996713 source . /ci/get_secrets.sh
117123 - yarn global add serverless@^3.38.0 --prefix /usr/local
@@ -124,7 +130,7 @@ integration-test ({{ $runtime.name }}-{{ $runtime.arch }}):
124130sign-layer ({{ $runtime .name }}-{{ $runtime .arch }}):
125131 stage: sign
126132 tags: [" arch:amd64" ]
127- image: registry.ddbuild.io /images/docker:20 .10 - py3
133+ image: registry.ddbuild.io /images/docker:29 .4.0 -noble- py3@sha256:a1e09b5d90ac6c8576313064f1b0e5809ba718355715fb43a832ea7aa1ec7b70
128134 rules:
129135 - if : '$CI_COMMIT_TAG = ~ /^v. */'
130136 when: manual
@@ -141,6 +147,7 @@ sign-layer ({{ $runtime.name }}-{{ $runtime.arch }}):
141147 paths:
142148 - .layers /datadog_lambda_py-{{ $runtime .arch }}-{{ $runtime .python_version }}.zip
143149 before_script:
150+ - *install-python-tools
144151 - apt-get update
145152 - apt-get install -y uuid-runtime
146153 {{ with $environment := (ds " environments" ).environments.prod }}
@@ -155,7 +162,7 @@ sign-layer ({{ $runtime.name }}-{{ $runtime.arch }}):
155162publish-layer-{{ $environment_name }} ({{ $runtime .name }}-{{ $runtime .arch }}):
156163 stage: publish
157164 tags: [" arch:amd64" ]
158- image: registry.ddbuild.io /images/docker:20 .10 - py3
165+ image: registry.ddbuild.io /images/docker:29 .4.0 -noble- py3@sha256:a1e09b5d90ac6c8576313064f1b0e5809ba718355715fb43a832ea7aa1ec7b70
159166 rules:
160167 - if : '$SKIP_E2E_TESTS == " true" '
161168 when: never
@@ -190,6 +197,7 @@ publish-layer-{{ $environment_name }} ({{ $runtime.name }}-{{ $runtime.arch }}):
190197 - {{ .code }}
191198 {{- end }}
192199 before_script:
200+ - *install-python-tools
193201 - EXTERNAL_ID_NAME= {{ $environment .external_id }} ROLE_TO_ASSUME= {{ $environment .role_to_assume }} AWS_ACCOUNT= {{ $environment .account }} source . /ci/get_secrets.sh
194202 script:
195203 - STAGE= {{ $environment_name }} PYTHON_VERSION= {{ $runtime .python_version }} ARCH= {{ $runtime .arch }} DOTENV= {{ $dotenv }} . /ci/publish_layers.sh
@@ -201,8 +209,9 @@ publish-layer-{{ $environment_name }} ({{ $runtime.name }}-{{ $runtime.arch }}):
201209publish-pypi-package:
202210 stage: publish
203211 tags: [" arch:amd64" ]
204- image: registry.ddbuild.io /images/docker:20 .10 - py3
212+ image: registry.ddbuild.io /images/docker:29 .4.0 -noble- py3@sha256:a1e09b5d90ac6c8576313064f1b0e5809ba718355715fb43a832ea7aa1ec7b70
205213 before_script:
214+ - *install-python-tools
206215 - . /scripts/setup_python_env.sh
207216 cache: []
208217 rules:
@@ -217,7 +226,7 @@ publish-pypi-package:
217226layer bundle:
218227 stage: build
219228 tags: [" arch:amd64" ]
220- image: registry.ddbuild.io /images/docker:20 .10
229+ image: registry.ddbuild.io /images/docker:27 .3.1 @sha256:966b6cd18c53e3730e7aaea2c0ca6b6b9877dcff11d9446f25ee5bc2293585d0
221230 needs:
222231 {{ range (ds " runtimes" ).runtimes }}
223232 - build-layer ({{ .name }}-{{ .arch }})
@@ -238,7 +247,7 @@ layer bundle:
238247
239248signed layer bundle:
240249 stage: sign
241- image: registry.ddbuild.io /images/docker:20 .10 - py3
250+ image: registry.ddbuild.io /images/docker:29 .4.0 -noble- py3@sha256:a1e09b5d90ac6c8576313064f1b0e5809ba718355715fb43a832ea7aa1ec7b70
242251 tags: [" arch:amd64" ]
243252 rules:
244253 - if : '$CI_COMMIT_TAG = ~ /^v. */'
@@ -286,7 +295,7 @@ e2e-test:
286295
287296e2e-test-status:
288297 stage: e2e
289- image: registry.ddbuild.io /images/docker:20 .10 - py3
298+ image: registry.ddbuild.io /images/docker:29 .4.0 -noble- py3@sha256:a1e09b5d90ac6c8576313064f1b0e5809ba718355715fb43a832ea7aa1ec7b70
290299 tags: [" arch:amd64" ]
291300 timeout: 3h
292301 rules:
0 commit comments