CI: run tests in Matrix and upload only 3.12 to Codecov#137
CI: run tests in Matrix and upload only 3.12 to Codecov#137shenanigansd merged 3 commits intomainfrom
Conversation
Signed-off-by: Bradley Reynolds <bradley.reynolds@tailstory.dev>
Merging this PR will improve performance by 10.23%
Performance Changes
Comparing |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #137 +/- ##
=======================================
Coverage 88.29% 88.29%
=======================================
Files 3 3
Lines 94 94
=======================================
Hits 83 83
Misses 11 11 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Pull request overview
This PR refactors the CI workflow to separate linting and testing into distinct jobs, implements a test matrix for Python versions 3.10-3.14, and optimizes Codecov uploads to only include Python 3.12 coverage reports.
Changes:
- Split the
lint-testjob into separatelintandtestjobs for better parallelization - Added a test matrix to run tests across Python versions 3.10, 3.11, 3.12, 3.13, and 3.14
- Created a separate
codecovjob that downloads and uploads only Python 3.12 coverage and test results to Codecov
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: Bradley Reynolds <bradley.reynolds@tailstory.dev>
Signed-off-by: Bradley Reynolds <bradley.reynolds@tailstory.dev>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if: ${{ !cancelled() }} | ||
| uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 | ||
| with: | ||
| name: coverage-py3.14 |
There was a problem hiding this comment.
The PR title indicates that coverage from Python 3.12 should be uploaded to Codecov, but this downloads coverage from Python 3.14 instead. This should be changed to "coverage-py3.12" to match the PR's stated intent.
| name: coverage-py3.14 | |
| name: coverage-py3.12 |
| - name: Download coverage reports | ||
| if: ${{ !cancelled() }} | ||
| uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 | ||
| with: | ||
| name: coverage-py3.14 | ||
| path: coverage |
There was a problem hiding this comment.
The codecov job uses "if: always()" which means it will run even if the test job fails. However, the download-artifact step uses "if: !cancelled()" which may cause issues if the test job fails and no artifact is produced. Consider adding a check to ensure the artifact exists before attempting to download, or adjust the condition to handle cases where tests fail for Python 3.12.
No description provided.