@@ -49,18 +49,30 @@ concurrency:
49
49
50
50
jobs :
51
51
run-tests :
52
- runs-on :
53
- group : oss-larger-runners
52
+ runs-on : ubuntu-latest
54
53
name : ${{ matrix.test-type.name }} - python:${{ matrix.python-version }}, ${{ matrix.database }}
55
54
strategy :
55
+ fail-fast : false
56
56
matrix :
57
57
test-type :
58
58
- name : Server Tests
59
- modules : tests/server/ tests/events/server
59
+ modules : tests/server/ tests/events/server --ignore=tests/server/database/ --ignore=tests/server/orchestration/
60
+ - name : Database and Orchestration Tests
61
+ modules : tests/server/database/ tests/server/orchestration/
60
62
- name : Client Tests
61
- modules : tests/ --ignore=tests/typesafety --ignore=tests/server/ --ignore=tests/events/server --ignore=tests/test_task_runners.py --ignore=tests/runner --ignore=tests/workers
62
- - name : Runner and Worker Tests
63
- modules : tests/test_task_runners.py tests/runner tests/workers
63
+ modules : >-
64
+ tests/
65
+ --ignore=tests/typesafety
66
+ --ignore=tests/server/
67
+ --ignore=tests/events/server
68
+ --ignore=tests/test_task_runners.py
69
+ --ignore=tests/runner
70
+ --ignore=tests/workers
71
+ --ignore=tests/cli/
72
+ --ignore=tests/test_settings.py
73
+ --ignore=tests/input/
74
+ - name : Runner, Worker, Settings, Input, and CLI Tests
75
+ modules : tests/test_task_runners.py tests/runner tests/workers tests/cli/ tests/test_settings.py tests/input/
64
76
database :
65
77
- " postgres:14"
66
78
- " sqlite"
@@ -73,13 +85,21 @@ jobs:
73
85
- database : " sqlite"
74
86
test-type :
75
87
name : Client Tests
76
- modules : tests/ --ignore=tests/typesafety --ignore=tests/server/ --ignore=tests/events/server --ignore=tests/test_task_runners.py --ignore=tests/runner --ignore=tests/workers
88
+ modules : >-
89
+ tests/
90
+ --ignore=tests/typesafety
91
+ --ignore=tests/server/
92
+ --ignore=tests/events/server
93
+ --ignore=tests/test_task_runners.py
94
+ --ignore=tests/runner
95
+ --ignore=tests/workers
96
+ --ignore=tests/cli/
97
+ --ignore=tests/test_settings.py
98
+ --ignore=tests/input/
77
99
- database : " sqlite"
78
100
test-type :
79
- name : Runner and Worker Tests
80
- modules : tests/test_task_runners.py tests/runner tests/workers
81
-
82
- fail-fast : true
101
+ name : Runner, Worker, Settings, Input, and CLI Tests
102
+ modules : tests/test_task_runners.py tests/runner tests/workers tests/cli/ tests/test_settings.py tests/input/
83
103
84
104
timeout-minutes : 15
85
105
@@ -148,26 +168,8 @@ jobs:
148
168
--publish 6379:6379
149
169
redis:latest
150
170
151
- - name : Set coverage file and artifact name
152
- id : set_coverage_and_artifact_name
153
- run : |
154
- sanitized_test_type="${{ matrix.test-type.name }}"
155
- sanitized_test_type="${sanitized_test_type// /_}"
156
- sanitized_database="${{ matrix.database }}"
157
- sanitized_database="${sanitized_database//:/\-}"
158
- sanitized_python_version="${{ matrix.python-version }}"
159
- export COVERAGE_FILE=".coverage.${sanitized_test_type}.${sanitized_python_version}.${sanitized_database}"
160
- echo "COVERAGE_FILE=${COVERAGE_FILE}" >> $GITHUB_ENV
161
- echo "artifact_name=coverage-data-${sanitized_test_type}-${{ matrix.python-version }}-${sanitized_database}" >> $GITHUB_OUTPUT
162
-
163
- - name : Set coverage core
164
- if : ${{ matrix.python-version == '3.12' }}
165
- run : |
166
- echo "COVERAGE_CORE=sysmon" >> $GITHUB_ENV
167
-
168
171
- name : Run tests
169
172
run : |
170
- echo "Using COVERAGE_FILE=$COVERAGE_FILE"
171
173
pytest ${{ matrix.test-type.modules }} \
172
174
--numprocesses auto \
173
175
--maxprocesses 6 \
@@ -176,17 +178,6 @@ jobs:
176
178
--exclude-service kubernetes \
177
179
--exclude-service docker \
178
180
--durations 26 \
179
- --cov=prefect \
180
- --cov-config=setup.cfg \
181
- --cov-report=''
182
-
183
- - name : Upload coverage data
184
- uses : actions/upload-artifact@v4
185
- with :
186
- name : ${{ steps.set_coverage_and_artifact_name.outputs.artifact_name }}
187
- path : ${{ env.COVERAGE_FILE }}
188
- include-hidden-files : true
189
- retention-days : 1
190
181
191
182
- name : Create and Upload failure flag
192
183
if : ${{ failure() }}
@@ -213,8 +204,7 @@ jobs:
213
204
|| echo "Ignoring bad exit code"
214
205
215
206
run-docker-tests :
216
- runs-on :
217
- group : oss-larger-runners
207
+ runs-on : ubuntu-latest
218
208
name : docker, python:${{ matrix.python-version }}
219
209
strategy :
220
210
matrix :
@@ -226,7 +216,7 @@ jobs:
226
216
- " 3.11"
227
217
- " 3.12"
228
218
229
- fail-fast : true
219
+ fail-fast : false
230
220
231
221
timeout-minutes : 45
232
222
@@ -346,21 +336,6 @@ jobs:
346
336
--publish 6379:6379
347
337
redis:latest
348
338
349
- - name : Set coverage file and artifact name
350
- id : set_coverage_and_artifact_name
351
- run : |
352
- sanitized_database="${{ matrix.database }}"
353
- sanitized_database="${sanitized_database//:/\-}"
354
- sanitized_python_version="${{ matrix.python-version }}"
355
- export COVERAGE_FILE=".coverage.${sanitized_python_version}.${sanitized_database}"
356
- echo "COVERAGE_FILE=${COVERAGE_FILE}" >> $GITHUB_ENV
357
- echo "artifact_name=coverage-data-docker-${{ matrix.python-version }}-${sanitized_database}" >> $GITHUB_OUTPUT
358
-
359
- - name : Set coverage core
360
- if : ${{ matrix.python-version == '3.12' }}
361
- run : |
362
- echo "COVERAGE_CORE=sysmon" >> $GITHUB_ENV
363
-
364
339
- name : Run tests
365
340
run : |
366
341
echo "Using COVERAGE_FILE=$COVERAGE_FILE"
@@ -371,17 +346,6 @@ jobs:
371
346
--disable-docker-image-builds \
372
347
--only-service docker \
373
348
--durations 26 \
374
- --cov=prefect \
375
- --cov-config=setup.cfg \
376
- --cov-report=''
377
-
378
- - name : Upload coverage data
379
- uses : actions/upload-artifact@v4
380
- with :
381
- name : ${{ steps.set_coverage_and_artifact_name.outputs.artifact_name }}
382
- path : ${{ env.COVERAGE_FILE }}
383
- include-hidden-files : true
384
- retention-days : 1
385
349
386
350
- name : Create and Upload failure flag
387
351
if : ${{ failure() }}
@@ -407,49 +371,6 @@ jobs:
407
371
&& docker container logs postgres \
408
372
|| echo "Ignoring bad exit code"
409
373
410
- combine-coverage :
411
- runs-on : ubuntu-latest
412
- needs :
413
- - run-tests
414
- - run-docker-tests
415
- steps :
416
- - uses : actions/checkout@v4
417
- with :
418
- persist-credentials : false
419
-
420
- - name : Set up Python 3.12
421
- uses : actions/setup-python@v5
422
- id : setup_python
423
- with :
424
- python-version : " 3.12"
425
-
426
- - name : Download coverage data artifacts
427
- uses : actions/download-artifact@v4
428
- with :
429
- pattern : coverage-data-*
430
- merge-multiple : true
431
-
432
- - name : Install coverage
433
- run : pip install coverage
434
-
435
- - name : Combine coverage data
436
- run : coverage combine
437
-
438
- - name : Generate HTML coverage report
439
- run : coverage html
440
-
441
- - name : Upload combined coverage report
442
- uses : actions/upload-artifact@v4
443
- with :
444
- name : combined-coverage-report
445
- path : htmlcov/
446
-
447
- - name : Publish coverage markdown report
448
- run : |
449
- echo "## Coverage Report" >> $GITHUB_STEP_SUMMARY
450
- echo "[Detailed Report](${{ steps.upload_combined_coverage_report.outputs.artifact_url }})" >> $GITHUB_STEP_SUMMARY
451
- coverage report --format=markdown >> $GITHUB_STEP_SUMMARY
452
-
453
374
run-typesafety-test :
454
375
name : typesafety
455
376
runs-on : ubuntu-latest
0 commit comments