@@ -338,7 +338,6 @@ jobs:
338338 env :
339339 TOOLKIT_VERSION : ${{ steps.version.outputs.VERSION }}
340340 PYTHON_VERSION : ${{ matrix.python-version }}
341- COVERAGE_FILE : .coverage.${{ matrix.python-version }}
342341 run : |
343342 set -euo pipefail
344343
@@ -351,14 +350,21 @@ jobs:
351350 --junitxml=junit.xml \
352351 -o junit_family=legacy
353352
354- # Check if coverage file was generated
355- if [ -f ".coverage.${PYTHON_VERSION}" ]; then
356- echo "coverage_generated=true" >> $GITHUB_OUTPUT
357- else
353+ # Coverage parallel mode creates multiple .coverage.* files, combine them
354+ shopt -s nullglob
355+ coverage_files=(.coverage.*)
356+
357+ if [ ${#coverage_files[@]} -eq 0 ]; then
358+ echo "Error: No coverage data generated"
358359 echo "coverage_generated=false" >> $GITHUB_OUTPUT
359- echo "Warning: No coverage file generated"
360+ exit 1
360361 fi
361362
363+ poetry run coverage combine
364+ mv .coverage .coverage.${PYTHON_VERSION}
365+ echo "Coverage saved as .coverage.${PYTHON_VERSION}"
366+ echo "coverage_generated=true" >> $GITHUB_OUTPUT
367+
362368 - name : Per-version coverage summary
363369 if : steps.test-unit.outputs.coverage_generated == 'true'
364370 env :
@@ -414,33 +420,24 @@ jobs:
414420 run : |
415421 set -euo pipefail
416422
417- if [ ! -d "coverage-data" ] || [ -z "$(ls -A coverage-data 2>/dev/null)" ]; then
418- echo "No coverage artifacts were downloaded. All tests may have failed before generating coverage."
419- echo "success=false" >> $GITHUB_OUTPUT
420- exit 0
421- fi
422-
423- echo "Downloaded coverage files:"
424- ls -la coverage-data/
425-
426423 shopt -s nullglob
427424 coverage_files=(coverage-data/.coverage.*)
425+
428426 if [ ${#coverage_files[@]} -eq 0 ]; then
429- echo "No . coverage.* files found to combine"
427+ echo "No coverage files to combine (tests may have failed) "
430428 echo "success=false" >> $GITHUB_OUTPUT
431429 exit 0
432430 fi
433431
434- echo "Found ${#coverage_files[@]} coverage file(s) to combine"
435-
432+ echo "Combining ${#coverage_files[@]} coverage file(s)"
436433 cd coverage-data
434+
437435 coverage combine
438436 coverage xml -o coverage.xml
439437 coverage report
440438
441439 echo "## Combined Coverage Report" >> $GITHUB_STEP_SUMMARY
442440 coverage report --format=markdown >> $GITHUB_STEP_SUMMARY
443-
444441 echo "success=true" >> $GITHUB_OUTPUT
445442
446443 - name : Upload combined coverage to Codecov
0 commit comments