Cleanup ci.yaml matrix usage by ShaharNaveh · Pull Request #7260 · RustPython/RustPython
📝 Walkthrough
Walkthrough
Refactors .github/workflows/ci.yaml to replace OS-specific skip/env variables with a matrix-driven job matrix (per-entry os, skips, PLATFORM_INDEPENDENT_TESTS, env_polluting_tests, timeout) and consolidates test and env-polluter steps into matrix-aware executions.
Changes
| Cohort / File(s) | Summary |
|---|---|
CI workflow (matrix-driven) .github/workflows/ci.yaml |
Converted OS-specific skip/env branches into a matrix.include configuration providing per-entry skips, PLATFORM_INDEPENDENT_TESTS, env_polluting_tests, and timeout; unified platform-independent and platform-dependent test steps to use matrix.* values; removed WINDOWS_SKIPS and global ENV_POLLUTING_* variables; consolidated messaging and timeouts. |
Sequence Diagram(s)
sequenceDiagram
rect rgba(200,230,255,0.5)
participant GH as GitHub Actions
participant Matrix as Job Matrix
participant Runner as OS Runner
participant Shell as Job Steps
end
GH->>Matrix: expand matrix.include (os, skips, PLATFORM_INDEPENDENT_TESTS, env_polluting_tests, timeout)
Matrix->>Runner: select runner for entry (linux/macos/windows)
Runner->>Shell: execute unified job steps with matrix.* args
Shell->>Shell: run platform-independent tests (matrix.PLATFORM_INDEPENDENT_TESTS)
Shell->>Shell: run platform-dependent tests excluding matrix.skips
Shell->>Shell: run env-polluter checks using matrix.env_polluting_tests
Shell-->>Runner: return results
Runner-->>GH: report completion
Estimated code review effort
🎯 3 (Moderate) | ⏱️ ~20 minutes
Possibly related PRs
- Restructure CI with matrix approach and multi-feature support #7376: Converts OS-specific CI branches into a matrix-driven flow; closely overlaps
.github/workflows/ci.yamlrestructuring. - Enable jit on macos (CI) #7401: Removes macOS-specific branching and consolidates platform-specific test steps into a matrix-driven workflow.
- Use matrix for
cargo check#7388: Replaces per-target/per-OS CI steps with matrix-driven jobs for tests and cargo checks.
Suggested reviewers
- youknowone
Poem
🐇 I hopped through YAML, tidy and spry,
Matrix paths set under one sky,
Tests now march in tidy rows,
No more scattered OS-posed woes,
A happy thump — CI's reply!
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
| Check name | Status | Explanation |
|---|---|---|
| Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. |
| Title check | ✅ Passed | The title 'Cleanup ci.yaml matrix usage' clearly and specifically identifies the main change: refactoring GitHub Actions CI workflow to improve matrix definition and usage patterns. |
| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. |
✏️ Tip: You can configure your own custom pre-merge checks in the settings.
✨ Finishing Touches
🧪 Generate unit tests (beta)
- Create PR with unit tests
- Post copyable unit tests in a comment
📝 Coding Plan
- Generate coding plan for human review comments
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 @coderabbitai help to get the list of available commands and usage tips.