feat: add Windows and macOS to test matrix#234
Conversation
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #234 +/- ##
=======================================
Coverage 97.07% 97.07%
=======================================
Files 4 4
Lines 239 239
=======================================
Hits 232 232
Misses 7 7 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
WalkthroughThe test workflow is updated to run test jobs across a matrix of three operating systems (Ubuntu, Windows, macOS) with ChangesCI Test Coverage Expansion
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.github/workflows/test.yml (1)
12-17: Consider the CI cost and runtime tradeoff of the expanded matrix.The matrix expansion from 6 jobs (1 OS × 6 Python versions) to 18 jobs (3 OSes × 6 Python versions) triples the CI minutes consumed per workflow run. Combined with
fail-fast: false, failed jobs will not short-circuit the matrix, further increasing costs when failures occur.This is a reasonable tradeoff for a cross-platform project, but consider:
- Whether all Python versions need to be tested on all platforms, or if a reduced matrix (e.g., latest Python on all OSes, all Python versions on Linux only) would provide sufficient coverage
- Monitoring CI minute usage if you're on a limited plan
- The longer PR feedback cycle (all 18 jobs must complete)
The current approach provides maximum coverage and aligns with the project's declared platform support, so this is acceptable as-is.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/workflows/test.yml around lines 12 - 17, The CI matrix now multiplies jobs via the matrix keys (matrix.os and python-version) and with strategy.fail-fast: false triples runtime and cost; to mitigate, adjust the matrix to reduce redundant combinations — for example keep python-version matrix only on Linux (remove python-version from matrix.os entries except ubuntu), or test only the latest Python on macos and windows while keeping all python-version values for ubuntu, and/or set strategy.fail-fast: true to short-circuit on failures; update the workflow matrix and strategy entries accordingly (refer to matrix.os, python-version, and strategy.fail-fast in the YAML) to balance coverage vs CI minutes.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In @.github/workflows/test.yml:
- Around line 12-17: The CI matrix now multiplies jobs via the matrix keys
(matrix.os and python-version) and with strategy.fail-fast: false triples
runtime and cost; to mitigate, adjust the matrix to reduce redundant
combinations — for example keep python-version matrix only on Linux (remove
python-version from matrix.os entries except ubuntu), or test only the latest
Python on macos and windows while keeping all python-version values for ubuntu,
and/or set strategy.fail-fast: true to short-circuit on failures; update the
workflow matrix and strategy entries accordingly (refer to matrix.os,
python-version, and strategy.fail-fast in the YAML) to balance coverage vs CI
minutes.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 75e5b60a-7fb2-407b-a5ff-f8238e69b515
📒 Files selected for processing (1)
.github/workflows/test.yml



Summary
Adds
windows-latestandmacos-latestto the CI test matrix alongside the existingubuntu-latest.Changes
.github/workflows/test.yml:osdimension to the test matrix (ubuntu-latest,windows-latest,macos-latest)runs-onto${{ matrix.os }}(was hardcoded toubuntu-latest)fail-fast: falseso one OS failure doesn't cancel othersubuntu-latest(was: on any OS with Python 3.13)Reasoning
testing/run.shworks cross-platformtmp_pathanduvare fully cross-platformCloses #TBD
Summary by CodeRabbit