4343jobs :
4444 system-test-public-api :
4545 if : ${{ inputs.run-public-api }}
46- timeout-minutes : 25 # if this timeout gets too small, then split the tests
46+ timeout-minutes : 25
4747 name : " [sys] public api"
4848 runs-on : ${{ inputs.os }}
4949 steps :
50- - uses : actions/checkout@v4
51- - name : setup docker buildx
52- id : buildx
53- uses : docker/setup-buildx-action@v3
54- with :
55- driver : docker-container
56- - name : setup python environment
57- uses : actions/setup-python@v5
50+ - uses : ./.github/workflows/actions/common-setup
5851 with :
5952 python-version : ${{ inputs.python-version }}
60- - name : expose github runtime for buildx
61- uses : crazy-max/ghaction-github-runtime@v3
62- # FIXME: Workaround for https://github.com/actions/download-artifact/issues/249
63- - name : download docker images with retry
64- uses : Wandalen/wretry.action@master
65- with :
66- action : actions/download-artifact@v4
67- with : |
68- pattern: docker-buildx-images-${{ runner.os }}-${{ github.sha }}-*
69- path: /${{ runner.temp }}/build
70- attempt_limit : 5
71- attempt_delay : 1000
72-
73- - name : install uv
74- uses : astral-sh/setup-uv@v6
75- with :
76- version : ${{ inputs.uv-version }}
77- enable-cache : false
78- cache-dependency-glob : " **/public-api/requirements/ci.txt"
53+ uv-version : ${{ inputs.uv-version }}
54+ requirements-path : " **/public-api/requirements/ci.txt"
55+ runner-temp : ${{ runner.temp }}
7956 - name : load docker images
80- run : make load-images local-src=/ ${{ runner.temp }}/build
57+ run : make load-images local-src=${{ runner.temp }}/build
8158 - name : show system version
8259 run : ./ci/helpers/show_system_versions.bash
83- - name : install
60+ - name : install & test
8461 env :
8562 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
86- run : ./ci/github/system-testing/public-api.bash install
87- - name : test
88- run : ./ci/github/system-testing/public-api.bash test
63+ run : |
64+ ./ci/github/system-testing/public-api.bash install
65+ ./ci/github/system-testing/public-api.bash test
8966 - name : upload failed tests logs
90- if : ${{ failure() }}
67+ if : failure()
9168 uses : actions/upload-artifact@v4
9269 with :
9370 name : ${{ github.job }}_docker_logs
@@ -98,55 +75,36 @@ jobs:
9875
9976 system-test-swarm-deploy :
10077 if : ${{ inputs.run-swarm-deploy }}
101- timeout-minutes : 30 # if this timeout gets too small, then split the tests
78+ timeout-minutes : 30
10279 name : " [sys] deploy simcore"
10380 runs-on : ${{ inputs.os }}
10481 steps :
105- - uses : actions/checkout@v4
106- - name : setup docker buildx
107- id : buildx
108- uses : docker/setup-buildx-action@v3
109- with :
110- driver : docker-container
111- - name : setup python environment
112- uses : actions/setup-python@v5
82+ - uses : ./.github/workflows/actions/common-setup
11383 with :
11484 python-version : ${{ inputs.python-version }}
115- - name : expose github runtime for buildx
116- uses : crazy-max/ghaction-github-runtime@v3
117- # FIXME: Workaround for https://github.com/actions/download-artifact/issues/249
118- - name : download docker images with retry
119- uses : Wandalen/wretry.action@master
120- with :
121- action : actions/download-artifact@v4
122- with : |
123- pattern: docker-buildx-images-${{ runner.os }}-${{ github.sha }}-*
124- path: /${{ runner.temp }}/build
125- attempt_limit : 5
126- attempt_delay : 1000
127- - name : install uv
128- uses : astral-sh/setup-uv@v6
129- with :
130- version : " 0.6.x"
131- enable-cache : false
132- cache-dependency-glob : " **/swarm-deploy/requirements/ci.txt"
85+ uv-version : ${{ inputs.uv-version }}
86+ requirements-path : " **/swarm-deploy/requirements/ci.txt"
87+ runner-temp : ${{ runner.temp }}
13388 - name : load docker images
134- run : make load-images local-src=/ ${{ runner.temp }}/build
89+ run : make load-images local-src=${{ runner.temp }}/build
13590 - name : show system version
13691 run : ./ci/helpers/show_system_versions.bash
137- - name : install
138- run : ./ci/github/system-testing/swarm-deploy.bash install
139- - name : test
140- run : ./ci/github/system-testing/swarm-deploy.bash test
141- - name : dump services setting schemas
142- run : export DOCKER_REGISTRY=local; export DOCKER_IMAGE_TAG=production; make settings-schema.json
92+ - name : install & test
93+ run : |
94+ ./ci/github/system-testing/swarm-deploy.bash install
95+ ./ci/github/system-testing/swarm-deploy.bash test
96+ - name : dump services settings schemas
97+ run : |
98+ export DOCKER_REGISTRY=local
99+ export DOCKER_IMAGE_TAG=production
100+ make settings-schema.json
143101 - name : upload services settings schemas
144102 uses : actions/upload-artifact@v4
145103 with :
146104 name : ${{ github.job }}_services_settings_schemas
147105 path : ./services/**/settings-schema.json
148106 - name : upload failed tests logs
149- if : ${{ failure() }}
107+ if : failure()
150108 uses : actions/upload-artifact@v4
151109 with :
152110 name : ${{ github.job }}_docker_logs
@@ -157,159 +115,109 @@ jobs:
157115
158116 system-test-e2e :
159117 if : ${{ inputs.run-e2e }}
160- timeout-minutes : 30 # if this timeout gets too small, then split the tests
118+ timeout-minutes : 30
161119 name : " [sys] e2e"
162120 runs-on : ${{ inputs.os }}
163121 steps :
164- - uses : actions/checkout@v4
165- - name : setup docker buildx
166- id : buildx
167- uses : docker/setup-buildx-action@v3
168- with :
169- driver : docker-container
170- - name : setup python environment
171- uses : actions/setup-python@v5
122+ - uses : ./.github/workflows/actions/common-setup
172123 with :
173124 python-version : ${{ inputs.python-version }}
125+ uv-version : ${{ inputs.uv-version }}
126+ requirements-path : " **/e2e/requirements/requirements.txt"
127+ runner-temp : ${{ runner.temp }}
174128175129 with :
176130 node-version : ${{ inputs.node-version }}
177131 cache : " npm"
178132 cache-dependency-path : " tests/e2e/package-lock.json"
179- - name : expose github runtime for buildx
180- uses : crazy-max/ghaction-github-runtime@v3
181- # FIXME: Workaround for https://github.com/actions/download-artifact/issues/249
182- - name : download docker images with retry
183- uses : Wandalen/wretry.action@master
184- with :
185- action : actions/download-artifact@v4
186- with : |
187- pattern: docker-buildx-images-${{ runner.os }}-${{ github.sha }}-*
188- path: /${{ runner.temp }}/build
189- attempt_limit : 5
190- attempt_delay : 1000
191- - name : install uv
192- uses : astral-sh/setup-uv@v6
193- with :
194- version : ${{ inputs.uv-version }}
195- enable-cache : false
196- cache-dependency-glob : " **/e2e/requirements/requirements.txt"
197133 - name : load docker images
198- run : make load-images local-src=/ ${{ runner.temp }}/build
134+ run : make load-images local-src=${{ runner.temp }}/build
199135 - name : show system version
200136 run : ./ci/helpers/show_system_versions.bash
201- - name : setup
202- run : ./ci/github/system-testing/e2e.bash install
203- - name : test
204- run : ./ci/github/system-testing/e2e.bash test
205- - name : dump docker logs
206- if : ${{ !cancelled() }}
207- run : ./ci/github/system-testing/e2e.bash dump_docker_logs
208- - name : upload docker logs
209- if : ${{ !cancelled() }}
210- uses : actions/upload-artifact@v4
211- with :
212- name : ${{ github.job }}_docker_logs
213- path : ./tests/e2e/test_failures
214- - name : upload screenshots
137+ - name : install & test
138+ run : |
139+ ./ci/github/system-testing/e2e.bash install
140+ ./ci/github/system-testing/e2e.bash test
141+ - name : collect artifacts
215142 if : ${{ !cancelled() }}
216- uses : actions/upload-artifact@v4
217- with :
218- name : ${{ github.job }}_screenshots
219- path : tests/e2e/screenshots
220- - name : upload e2e logs
143+ run : |
144+ ./ci/github/system-testing/e2e.bash dump_docker_logs
145+ for artifact in docker_logs screenshots logs; do
146+ if [ -d "./tests/e2e/${artifact}" ]; then
147+ tar -czf "${artifact}.tar.gz" "./tests/e2e/${artifact}"
148+ fi
149+ done
150+ - name : upload artifacts
221151 if : ${{ !cancelled() }}
222152 uses : actions/upload-artifact@v4
223153 with :
224- name : ${{ github.job }}_logs
225- path : tests/e2e/logs
154+ name : ${{ github.job }}_artifacts
155+ path : |
156+ docker_logs.tar.gz
157+ screenshots.tar.gz
158+ logs.tar.gz
226159 - name : cleanup
227160 if : ${{ !cancelled() }}
228161 run : ./ci/github/system-testing/e2e.bash clean_up
229162
230163 system-test-e2e-playwright :
231164 if : ${{ inputs.run-e2e-playwright }}
232- timeout-minutes : 30 # if this timeout gets too small, then split the tests
165+ timeout-minutes : 30
233166 name : " [sys] e2e-playwright"
234167 runs-on : ${{ inputs.os }}
235168 steps :
236- - uses : actions/checkout@v4
237- - name : setup docker buildx
238- id : buildx
239- uses : docker/setup-buildx-action@v3
240- with :
241- driver : docker-container
242- - name : setup python environment
243- uses : actions/setup-python@v5
169+ - uses : ./.github/workflows/actions/common-setup
244170 with :
245171 python-version : ${{ inputs.python-version }}
246- - name : install uv
247- uses : astral-sh/setup-uv@v6
248- with :
249- version : ${{ inputs.uv-version }}
250- enable-cache : false
251- cache-dependency-glob : " **/e2e-playwright/requirements/ci.txt"
252- - name : expose github runtime for buildx
253- uses : crazy-max/ghaction-github-runtime@v3
254- - name : download docker images
255- uses : actions/download-artifact@v4
256- with :
257- pattern : docker-buildx-images-${{ runner.os }}-${{ github.sha }}-*
258- path : /${{ runner.temp }}/build
172+ uv-version : ${{ inputs.uv-version }}
173+ requirements-path : " **/e2e-playwright/requirements/ci.txt"
174+ runner-temp : ${{ runner.temp }}
259175 - name : load docker images
260- run : make load-images local-src=/ ${{ runner.temp }}/build
176+ run : make load-images local-src=${{ runner.temp }}/build
261177 - name : prepare devenv
262178 run : make devenv
263179 - name : show system version
264180 run : ./ci/helpers/show_system_versions.bash
265- - name : setup
266- run : ./ci/github/system-testing/e2e-playwright.bash install
267- - name : test
268- run : ./ci/github/system-testing/e2e-playwright.bash test
269- - name : dump docker logs
181+ - name : install & test
182+ run : |
183+ ./ci/github/system-testing/e2e-playwright.bash install
184+ ./ci/github/system-testing/e2e-playwright.bash test
185+ - name : collect artifacts
270186 if : ${{ !cancelled() }}
271- run : ./ci/github/system-testing/e2e-playwright.bash dump_docker_logs
272- - name : upload docker logs
187+ run : |
188+ ./ci/github/system-testing/e2e-playwright.bash dump_docker_logs
189+ for dir in test_failures test-results; do
190+ if [ -d "./tests/e2e-playwright/${dir}" ]; then
191+ tar -czf "${dir}.tar.gz" "./tests/e2e-playwright/${dir}"
192+ fi
193+ done
194+ - name : upload artifacts
273195 if : ${{ !cancelled() }}
274196 uses : actions/upload-artifact@v4
275197 with :
276- name : ${{ github.job }}_docker_logs
277- path : ./tests/e2e-playwright/test_failures
278- - name : upload tracing if failed
279- if : ${{ !cancelled() }}
280- uses : actions/upload-artifact@v4
281- with :
282- name : ${{ github.job }}_tracing
283- path : tests/e2e-playwright/test-results
198+ name : ${{ github.job }}_artifacts
199+ path : |
200+ test_failures.tar.gz
201+ test-results.tar.gz
284202
285203 system-test-environment-setup :
286204 if : ${{ inputs.run-environment-setup }}
287- timeout-minutes : 30 # if this timeout gets too small, then split the tests
205+ timeout-minutes : 30
288206 name : " [sys] environment setup"
289207 runs-on : ${{ inputs.os }}
290208 steps :
291- - uses : actions/checkout@v4
292- - name : setup docker buildx
293- id : buildx
294- uses : docker/setup-buildx-action@v3
295- with :
296- driver : docker-container
297- - name : setup python environment
298- uses : actions/setup-python@v5
209+ - uses : ./.github/workflows/actions/common-setup
299210 with :
300211 python-version : ${{ inputs.python-version }}
301- - name : install uv
302- uses : astral-sh/setup-uv@v6
303- with :
304- version : ${{ inputs.uv-version }}
305- enable-cache : false
306- cache-dependency-glob : " **/environment-setup/requirements/ci.txt"
212+ uv-version : ${{ inputs.uv-version }}
213+ requirements-path : " **/environment-setup/requirements/ci.txt"
214+ runner-temp : ${{ runner.temp }}
307215 - name : show system version
308216 run : ./ci/helpers/show_system_versions.bash
309- - name : install
310- run : ./ci/github/system-testing/environment-setup.bash install
311- - name : test
312- run : ./ci/github/system-testing/environment-setup.bash test
217+ - name : install & test
218+ run : |
219+ ./ci/github/system-testing/environment-setup.bash install
220+ ./ci/github/system-testing/environment-setup.bash test
313221 - name : cleanup
314222 if : ${{ !cancelled() }}
315223 run : ./ci/github/system-testing/environment-setup.bash clean_up
0 commit comments