Skip to content

Commit 2465dec

Browse files
committed
ci: Update Tekton config file to use smarter matrixes.
Signed-off-by: Paulo Vital <[email protected]>
1 parent c8fd6e9 commit 2465dec

File tree

3 files changed

+135
-61
lines changed

3 files changed

+135
-61
lines changed

.tekton/.currency/scripts/generate_report.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from datetime import datetime
55

66
import pandas as pd
7-
87
# Third Party
98
import requests
109
from bs4 import BeautifulSoup
@@ -188,7 +187,7 @@ def process_taskrun_logs(
188187
"Successfully installed .* (google-cloud-storage-[^\s]+)", logs
189188
)
190189
tekton_ci_output += f"{match[1]}\n"
191-
elif task_name == "python-tracer-unittest-default-task":
190+
elif task_name == "python-tracer-unittest-py-version-task":
192191
for line in logs.splitlines():
193192
if "Successfully installed" in line:
194193
tekton_ci_output += line
@@ -227,7 +226,7 @@ def get_tekton_ci_output():
227226
googlecloud_taskruns, core_v1_client, namespace, task_name, tekton_ci_output
228227
)
229228

230-
task_name = "python-tracer-unittest-default-task"
229+
task_name = "python-tracer-unittest-py-version-task"
231230
taskrun_filter = ( # noqa: E731
232231
lambda tr: tr["metadata"]["name"].endswith("unittest-default-3")
233232
and tr["status"]["conditions"][0]["type"] == "Succeeded"

.tekton/pipeline.yaml

Lines changed: 46 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,21 @@ spec:
66
params:
77
- name: revision
88
type: string
9+
- name: py-versions
10+
type: array
11+
default:
12+
- "3.8"
13+
- "3.9"
14+
- "3.10"
15+
- "3.11"
16+
- "3.12"
17+
- "3.13"
18+
- name: py-version-latest
19+
type: string
20+
default: "3.13"
21+
- name: py-version-next
22+
type: string
23+
default: "3.14.0b4"
924
workspaces:
1025
- name: python-tracer-ci-pipeline-pvc
1126
tasks:
@@ -18,86 +33,86 @@ spec:
1833
workspaces:
1934
- name: task-pvc
2035
workspace: python-tracer-ci-pipeline-pvc
21-
- name: unittest-default
22-
displayName: "Platforms and Browsers: $(params.platform) and $(params.browser)"
36+
- name: unittest-py-version
37+
displayName: "Unittest for Python $(params.py-version)"
2338
runAfter:
2439
- clone
2540
matrix:
2641
params:
27-
- name: imageDigest
28-
value:
29-
# public.ecr.aws/docker/library/python:3.8.20-bookworm
30-
- "sha256:7aa279fb41dad2962d3c915aa6f6615134baa412ab5aafa9d4384dcaaa0af15d"
31-
# public.ecr.aws/docker/library/python:3.9.23-bookworm
32-
- "sha256:4f77eeb4a6ab4364c601f1f4bc36f10945c0c42ef092f2704e7f99cd9170333a"
33-
# public.ecr.aws/docker/library/python:3.10.18-bookworm
34-
- "sha256:6b942ef4c1315964c027925010da1957e540c7c103c0718e7673da807bbf206c"
35-
# public.ecr.aws/docker/library/python:3.11.13-bookworm
36-
- "sha256:d53da2e965e9de4f1b5424544d7bd39f776ea9b1fc745335914045b1e6628c67"
37-
# public.ecr.aws/docker/library/python:3.12.11-bookworm
38-
- "sha256:01b17a5e297dd60629347a17d7c27908fc2c049e81a8cea3d5a1141f38777b8f"
39-
# public.ecr.aws/docker/library/python:3.13.4-bookworm
40-
- "sha256:8300f4e04ed367fafc5877b39dcf7a205532e295778f6fd20a08e1652b177d7b"
41-
# public.ecr.aws/docker/library/python:3.14.0b1-bookworm
42-
- "sha256:ce2af63139630eac65e3b9dba09c5083b199d692511eb1749192f25ac11abb93"
42+
- name: py-version
43+
value: $(params.py-versions)
4344
taskRef:
44-
name: python-tracer-unittest-default-task
45+
name: python-tracer-unittest-py-version-task
4546
workspaces:
4647
- name: task-pvc
4748
workspace: python-tracer-ci-pipeline-pvc
4849
- name: unittest-cassandra
50+
displayName: "Unittest for Cassandra with Python $(params.py-version)"
4951
runAfter:
5052
- clone
5153
matrix:
5254
params:
53-
- name: imageDigest
55+
- name: py-version
5456
value:
55-
# public.ecr.aws/docker/library/python:3.9.23-bookworm
56-
- "sha256:4f77eeb4a6ab4364c601f1f4bc36f10945c0c42ef092f2704e7f99cd9170333a"
57+
- $(params.py-version-latest)
5758
taskRef:
5859
name: python-tracer-unittest-cassandra-task
5960
workspaces:
6061
- name: task-pvc
6162
workspace: python-tracer-ci-pipeline-pvc
6263
- name: unittest-gevent-starlette
64+
displayName: "Unittest for Gevent and Starlette with Python $(params.py-version)"
6365
runAfter:
6466
- clone
6567
matrix:
6668
params:
67-
- name: imageDigest
69+
- name: py-version
6870
value:
69-
# public.ecr.aws/docker/library/python:3.9.23-bookworm
70-
- "sha256:4f77eeb4a6ab4364c601f1f4bc36f10945c0c42ef092f2704e7f99cd9170333a"
71+
- $(params.py-version-latest)
7172
taskRef:
7273
name: python-tracer-unittest-gevent-starlette-task
7374
workspaces:
7475
- name: task-pvc
7576
workspace: python-tracer-ci-pipeline-pvc
7677
- name: unittest-aws
78+
displayName: "Unittest for AWS with Python $(params.py-version)"
7779
runAfter:
7880
- clone
7981
matrix:
8082
params:
81-
- name: imageDigest
83+
- name: py-version
8284
value:
83-
# public.ecr.aws/docker/library/python:3.12.11-bookworm
84-
- "sha256:01b17a5e297dd60629347a17d7c27908fc2c049e81a8cea3d5a1141f38777b8f"
85+
- $(params.py-version-latest)
8586
taskRef:
8687
name: python-tracer-unittest-aws-task
8788
workspaces:
8889
- name: task-pvc
8990
workspace: python-tracer-ci-pipeline-pvc
9091
- name: unittest-kafka
92+
displayName: "Unittest for Kafka with Python $(params.py-version)"
9193
runAfter:
9294
- clone
9395
matrix:
9496
params:
95-
- name: imageDigest
97+
- name: py-version
9698
value:
97-
# public.ecr.aws/docker/library/python:3.12.11-bookworm
98-
- "sha256:01b17a5e297dd60629347a17d7c27908fc2c049e81a8cea3d5a1141f38777b8f"
99+
- $(params.py-version-latest)
99100
taskRef:
100101
name: python-tracer-unittest-kafka-task
101102
workspaces:
102103
- name: task-pvc
103104
workspace: python-tracer-ci-pipeline-pvc
105+
- name: unittest-python-next
106+
displayName: "Unittest for next Python $(params.py-version)"
107+
runAfter:
108+
- clone
109+
matrix:
110+
params:
111+
- name: py-version
112+
value:
113+
- $(params.py-version-next)
114+
taskRef:
115+
name: python-tracer-unittest-python-next-task
116+
workspaces:
117+
- name: task-pvc
118+
workspace: python-tracer-ci-pipeline-pvc

.tekton/task.yaml

Lines changed: 87 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ spec:
1212
mountPath: /workspace
1313
steps:
1414
- name: clone
15-
# public.ecr.aws/docker/library/alpine:3.20.3
16-
image: public.ecr.aws/docker/library/alpine@sha256:029a752048e32e843bd6defe3841186fb8d19a28dae8ec287f433bb9d6d1ad85
15+
image: public.ecr.aws/docker/library/alpine:3.20.3
1716
script: |
1817
#!/bin/sh
1918
echo "Installing git"
@@ -29,8 +28,7 @@ metadata:
2928
spec:
3029
sidecars:
3130
- name: cassandra
32-
# public.ecr.aws/docker/library/cassandra:3.11.16-jammy
33-
image: public.ecr.aws/docker/library/cassandra@sha256:b175d99b80f8108594d00c705288fdb3186b9fc07b30b4c292c3592cddb5f0b5
31+
image: public.ecr.aws/docker/library/cassandra:3.11.16-jammy
3432
env:
3533
- name: MAX_HEAP_SIZE
3634
value: 2048m
@@ -44,14 +42,14 @@ spec:
4442
- 'describe cluster'
4543
initialDelaySeconds: 20
4644
params:
47-
- name: imageDigest
45+
- name: py-version
4846
type: string
4947
workspaces:
5048
- name: task-pvc
5149
mountPath: /workspace
5250
steps:
5351
- name: unittest
54-
image: public.ecr.aws/docker/library/python@$(params.imageDigest)
52+
image: public.ecr.aws/docker/library/python:$(params.py-version)-bookworm
5553
env:
5654
- name: TEST_CONFIGURATION
5755
value: cassandra
@@ -65,14 +63,14 @@ metadata:
6563
name: python-tracer-unittest-gevent-starlette-task
6664
spec:
6765
params:
68-
- name: imageDigest
66+
- name: py-version
6967
type: string
7068
workspaces:
7169
- name: task-pvc
7270
mountPath: /workspace
7371
steps:
7472
- name: unittest
75-
image: public.ecr.aws/docker/library/python@$(params.imageDigest)
73+
image: public.ecr.aws/docker/library/python:$(params.py-version)-bookworm
7674
env:
7775
- name: TEST_CONFIGURATION
7876
value: gevent_starlette
@@ -83,12 +81,11 @@ spec:
8381
apiVersion: tekton.dev/v1
8482
kind: Task
8583
metadata:
86-
name: python-tracer-unittest-default-task
84+
name: python-tracer-unittest-py-version-task
8785
spec:
8886
sidecars:
8987
- name: google-cloud-pubsub
90-
# quay.io/thekevjames/gcloud-pubsub-emulator
91-
image: quay.io/thekevjames/gcloud-pubsub-emulator@sha256:9bad1f28e6a3d6cd5f462c654c736faa4cf49732d9422ddb427ad30f3037c0ff
88+
image: quay.io/thekevjames/gcloud-pubsub-emulator
9289
env:
9390
- name: PUBSUB_EMULATOR_HOST
9491
value: 0.0.0.0:8681
@@ -98,19 +95,16 @@ spec:
9895
- containerPort: 8681
9996
hostPort: 8681
10097
- name: mariadb
101-
# public.ecr.aws/docker/library/mariadb:11.3.2
102-
image: public.ecr.aws/docker/library/mariadb@sha256:a4a81ab6d190db84b67f286fd0511cdea619a24b63790b3db4fb69d263a5cd37
98+
image: public.ecr.aws/docker/library/mariadb:11.3.2
10399
env:
104100
- name: MYSQL_ROOT_PASSWORD # or MARIADB_ROOT_PASSWORD
105101
value: passw0rd
106102
- name: MYSQL_DATABASE # or MARIADB_DATABASE
107103
value: instana_test_db
108104
- name: mongo
109-
# public.ecr.aws/docker/library/mongo:7.0.6
110-
image: public.ecr.aws/docker/library/mongo@sha256:3a023748ee30e915dd51642f1ef430c73c4e54937060054ca84c70417f510cc5
105+
image: public.ecr.aws/docker/library/mongo:7.0.6
111106
- name: postgres
112-
# public.ecr.aws/docker/library/postgres:16.2-bookworm
113-
image: public.ecr.aws/docker/library/postgres@sha256:07572430dbcd821f9f978899c3ab3a727f5029be9298a41662e1b5404d5b73e0
107+
image: public.ecr.aws/docker/library/postgres:16.2-bookworm
114108
env:
115109
- name: POSTGRES_USER
116110
value: root
@@ -126,20 +120,18 @@ spec:
126120
- pg_isready --host 127.0.0.1 --port 5432 --dbname=${POSTGRES_DB}
127121
timeoutSeconds: 10
128122
- name: redis
129-
# public.ecr.aws/docker/library/redis:7.2.4-bookworm
130-
image: public.ecr.aws/docker/library/redis@sha256:9341b6548cc35b64a6de0085555264336e2f570e17ecff20190bf62222f2bd64
123+
image: public.ecr.aws/docker/library/redis:7.2.4-bookworm
131124
- name: rabbitmq
132-
# public.ecr.aws/docker/library/rabbitmq:3.13.0
133-
image: public.ecr.aws/docker/library/rabbitmq@sha256:39de1a4fc6c72d12bd5dfa23e8576536fd1c0cc8418344cd5a51addfc9a1145d
125+
image: public.ecr.aws/docker/library/rabbitmq:3.13.0
134126
params:
135-
- name: imageDigest
127+
- name: py-version
136128
type: string
137129
workspaces:
138130
- name: task-pvc
139131
mountPath: /workspace
140132
steps:
141133
- name: unittest
142-
image: public.ecr.aws/docker/library/python@$(params.imageDigest)
134+
image: public.ecr.aws/docker/library/python:$(params.py-version)-bookworm
143135
env:
144136
- name: TEST_CONFIGURATION
145137
value: default
@@ -153,14 +145,14 @@ metadata:
153145
name: python-tracer-unittest-aws-task
154146
spec:
155147
params:
156-
- name: imageDigest
148+
- name: py-version
157149
type: string
158150
workspaces:
159151
- name: task-pvc
160152
mountPath: /workspace
161153
steps:
162154
- name: unittest
163-
image: public.ecr.aws/docker/library/python@$(params.imageDigest)
155+
image: public.ecr.aws/docker/library/python:$(params.py-version)-bookworm
164156
env:
165157
- name: TEST_CONFIGURATION
166158
value: aws
@@ -193,17 +185,85 @@ spec:
193185
- name: KAFKA_CFG_ADVERTISED_LISTENERS
194186
value: "PLAINTEXT://kafka:9092,EXTERNAL://localhost:9094"
195187
params:
196-
- name: imageDigest
188+
- name: py-version
197189
type: string
198190
workspaces:
199191
- name: task-pvc
200192
mountPath: /workspace
201193
steps:
202194
- name: unittest
203-
image: public.ecr.aws/docker/library/python@$(params.imageDigest)
195+
image: public.ecr.aws/docker/library/python:$(params.py-version)-bookworm
204196
env:
205197
- name: TEST_CONFIGURATION
206198
value: kafka
207199
workingDir: /workspace/python-sensor/
208200
command:
209201
- /workspace/python-sensor/.tekton/run_unittests.sh
202+
203+
---
204+
apiVersion: tekton.dev/v1
205+
kind: Task
206+
metadata:
207+
name: python-tracer-unittest-python-next-task
208+
spec:
209+
sidecars:
210+
- name: google-cloud-pubsub
211+
# quay.io/thekevjames/gcloud-pubsub-emulator
212+
image: quay.io/thekevjames/gcloud-pubsub-emulator@sha256:9bad1f28e6a3d6cd5f462c654c736faa4cf49732d9422ddb427ad30f3037c0ff
213+
env:
214+
- name: PUBSUB_EMULATOR_HOST
215+
value: 0.0.0.0:8681
216+
- name: PUBSUB_PROJECT1
217+
value: test-project,test-topic
218+
ports:
219+
- containerPort: 8681
220+
hostPort: 8681
221+
- name: mariadb
222+
# public.ecr.aws/docker/library/mariadb:11.3.2
223+
image: public.ecr.aws/docker/library/mariadb@sha256:a4a81ab6d190db84b67f286fd0511cdea619a24b63790b3db4fb69d263a5cd37
224+
env:
225+
- name: MYSQL_ROOT_PASSWORD # or MARIADB_ROOT_PASSWORD
226+
value: passw0rd
227+
- name: MYSQL_DATABASE # or MARIADB_DATABASE
228+
value: instana_test_db
229+
- name: mongo
230+
# public.ecr.aws/docker/library/mongo:7.0.6
231+
image: public.ecr.aws/docker/library/mongo@sha256:3a023748ee30e915dd51642f1ef430c73c4e54937060054ca84c70417f510cc5
232+
- name: postgres
233+
# public.ecr.aws/docker/library/postgres:16.2-bookworm
234+
image: public.ecr.aws/docker/library/postgres@sha256:07572430dbcd821f9f978899c3ab3a727f5029be9298a41662e1b5404d5b73e0
235+
env:
236+
- name: POSTGRES_USER
237+
value: root
238+
- name: POSTGRES_PASSWORD
239+
value: passw0rd
240+
- name: POSTGRES_DB
241+
value: instana_test_db
242+
readinessProbe:
243+
exec:
244+
command:
245+
- sh
246+
- -c
247+
- pg_isready --host 127.0.0.1 --port 5432 --dbname=${POSTGRES_DB}
248+
timeoutSeconds: 10
249+
- name: redis
250+
# public.ecr.aws/docker/library/redis:7.2.4-bookworm
251+
image: public.ecr.aws/docker/library/redis@sha256:9341b6548cc35b64a6de0085555264336e2f570e17ecff20190bf62222f2bd64
252+
- name: rabbitmq
253+
# public.ecr.aws/docker/library/rabbitmq:3.13.0
254+
image: public.ecr.aws/docker/library/rabbitmq@sha256:39de1a4fc6c72d12bd5dfa23e8576536fd1c0cc8418344cd5a51addfc9a1145d
255+
params:
256+
- name: py-version
257+
type: string
258+
workspaces:
259+
- name: task-pvc
260+
mountPath: /workspace
261+
steps:
262+
- name: unittest-$(params.py-version)
263+
image: public.ecr.aws/docker/library/python:$(params.py-version)-bookworm
264+
env:
265+
- name: TEST_CONFIGURATION
266+
value: default
267+
workingDir: /workspace/python-sensor/
268+
command:
269+
- /workspace/python-sensor/.tekton/run_unittests.sh

0 commit comments

Comments
 (0)