Skip to content

Commit 1bea06f

Browse files
committed
fix(ci): Account for parallel mode creating multiple coverage files
1 parent 4647c20 commit 1bea06f

File tree

1 file changed

+16
-19
lines changed

1 file changed

+16
-19
lines changed

.github/workflows/ci.yml

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)