GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Cleanup ci.yaml matrix usage by ShaharNaveh · Pull Request #7260 · RustPython/RustPython

Conversation

@ShaharNaveh

@ShaharNaveh ShaharNaveh commented Feb 28, 2026 •
edited by coderabbitai Bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Chores

    • Restructured CI to a matrix-driven configuration with per-OS entries, per-entry timeouts, and simplified setup and caching steps.
    • Streamlined job steps and messaging to consume matrix values for arguments, skips, and env-handling.
  • Tests

    • Consolidated platform-independent and platform-dependent test execution into unified, matrix-guided steps replacing OS-specific branches.
    • Added per-entry handling for environment-polluting tests and per-entry additional test arguments.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@coderabbitai

coderabbitai Bot commented Feb 28, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: 6eb712f2-1f5e-4439-8235-a6c7206bd08a

📥 Commits

Reviewing files that changed from the base of the PR and between b667837 and 8f5161f.

📒 Files selected for processing (1)
  • .github/workflows/ci.yaml

📝 Walkthrough

Walkthrough

Replaces OS-specific test/skip/env handling in .github/workflows/ci.yaml with a matrix-driven job configuration that embeds per-entry os, skips, env_polluting_tests, extra_test_args, and timeout, and consolidates test and env-polluter steps into unified, matrix-aware steps.

Changes

Cohort / File(s) Summary
CI workflow (matrix-driven)
.github/workflows/ci.yaml
Replaced hard-coded OS-specific skip/env variables with a matrix.include that defines per-entry os, skips, env_polluting_tests, extra_test_args, and timeout; unified platform-independent/dependent test steps to use matrix.*; removed global WINDOWS_SKIPS and ENV_POLLUTING_TESTS_* variables; consolidated setup, caching, and messaging around the matrix flow.

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 Steps as Job Steps
    end
    GH->>Matrix: expand matrix.include (os, skips, env_polluting_tests, extra_test_args, timeout)
    Matrix->>Runner: select runner for matrix.os
    Runner->>Steps: execute unified job with matrix.* values
    Steps->>Steps: run platform-independent tests (matrix.extra_test_args)
    Steps->>Steps: run platform-dependent tests excluding matrix.skips
    Steps->>Steps: run env-polluter checks using matrix.env_polluting_tests
    Steps-->>Runner: return results
    Runner-->>GH: report completion
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • Use matrix for cargo check #7388: Similar changes to .github/workflows/ci.yaml, converting per-OS conditional steps into matrix-driven CI entries.
  • Restructure CI with matrix approach and multi-feature support #7376: Overlapping refactor that converts OS-specific CI branches into a matrix-driven workflow.

Suggested reviewers

  • youknowone

Poem

🐇 I hopped through YAML, neat and spry,

Matrix entries lined up under one sky,
Tests now march with shared commands,
No more scattered OS-specific strands,
A joyful thump — CI leaps high!

🚥 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' is directly related to the main change, which refactors CI workflow to use matrix-driven job configuration instead of hard-coded platform-specific blocks.
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.

❤️ Share
  • X
  • Mastodon
  • Reddit
  • LinkedIn

Comment @coderabbitai help to get the list of available commands and usage tips.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ShaharNaveh
ShaharNaveh marked this pull request as ready for review February 28, 2026 12:52
coderabbitai[bot]
coderabbitai Bot reviewed Feb 28, 2026
View reviewed changes

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/ci.yaml (1)

343-367: ⚠️ Potential issue | 🟠 Major

ENV_POLLUTING_TESTS_COMMON is referenced but not defined.

Line 346 references ${{ env.ENV_POLLUTING_TESTS_COMMON }}, but this environment variable is not defined anywhere in the file. Combined with matrix.job.env_polluting_tests being set to "" for all matrix entries, the for-loop body will never execute, making this step a silent no-op.

If there are currently no environment-polluting tests to check, consider either:

  1. Defining ENV_POLLUTING_TESTS_COMMON in the env: section (even if empty, for clarity), or
  2. Removing this step entirely if it's no longer needed, or
  3. Adding a comment explaining that this step is intentionally dormant pending future polluting tests.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/ci.yaml around lines 343 - 367, The workflow step's
for-loop references ENV_POLLUTING_TESTS_COMMON and
matrix.job.env_polluting_tests but ENV_POLLUTING_TESTS_COMMON is not defined, so
the loop will be a no-op; fix by defining ENV_POLLUTING_TESTS_COMMON in the
workflow's env: block (even as an empty string) or remove/comment out this step
if it's no longer needed — locate the references to ENV_POLLUTING_TESTS_COMMON
and matrix.job.env_polluting_tests in the CI step that runs rustpython (the for
thing in ... loop) and either add an env: ENV_POLLUTING_TESTS_COMMON: "" entry
at the top-level env or delete/add a clear comment explaining the step is
intentionally dormant.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In @.github/workflows/ci.yaml:
- Around line 343-367: The workflow step's for-loop references
ENV_POLLUTING_TESTS_COMMON and matrix.job.env_polluting_tests but
ENV_POLLUTING_TESTS_COMMON is not defined, so the loop will be a no-op; fix by
defining ENV_POLLUTING_TESTS_COMMON in the workflow's env: block (even as an
empty string) or remove/comment out this step if it's no longer needed — locate
the references to ENV_POLLUTING_TESTS_COMMON and matrix.job.env_polluting_tests
in the CI step that runs rustpython (the for thing in ... loop) and either add
an env: ENV_POLLUTING_TESTS_COMMON: "" entry at the top-level env or delete/add
a clear comment explaining the step is intentionally dormant.

ℹ️ Review info

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5c726e1 and e333638.

📒 Files selected for processing (1)
  • .github/workflows/ci.yaml

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ShaharNaveh
cleanup
36fed7d
@ShaharNaveh
ShaharNaveh force-pushed the CLN-ci-matrix branch from bd21154 to 36fed7d Compare March 14, 2026 08:58
@ShaharNaveh
ShaharNaveh marked this pull request as draft March 15, 2026 12:22
ShaharNaveh added 2 commits March 15, 2026 13:25
@ShaharNaveh
Merge remote-tracking branch 'upstream/main' into CLN-ci-matrix
f1c4d3d
@ShaharNaveh
Don't enable all resources on windows
b667837
@ShaharNaveh
ShaharNaveh marked this pull request as ready for review March 15, 2026 14:30
@ShaharNaveh
ShaharNaveh requested a review from youknowone March 15, 2026 14:30
coderabbitai[bot]
coderabbitai Bot reviewed Mar 15, 2026
View reviewed changes

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
.github/workflows/ci.yaml (2)

300-303: Use matrix args here too to avoid drift.

Line 303 hardcodes -u all, while Line 310 already pulls from matrix.extra_test_args. Reusing matrix input here keeps a single source of truth.

♻️ Proposed change
-          target/release/rustpython -m test -j 1 -u all --slowest --fail-env-changed --timeout 600 -v ${{ env.PLATFORM_INDEPENDENT_TESTS }}
+          target/release/rustpython -m test -j 1 ${{ join(matrix.extra_test_args, ' ') }} --slowest --fail-env-changed --timeout 600 -v ${{ env.PLATFORM_INDEPENDENT_TESTS }}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/ci.yaml around lines 300 - 303, The workflow step "run
cpython platform-independent tests" uses a hardcoded "-u all" in the test
command; replace that hardcoded arg with the matrix variable already used
elsewhere (matrix.extra_test_args or env.PLATFORM_INDEPENDENT_TESTS) so the step
consumes the same single source of truth as the other test step—update the run
string that invokes "target/release/rustpython -m test ..." to include the
matrix.extra_test_args (or the existing PLATFORM_INDEPENDENT_TESTS env var)
instead of "-u all" and ensure the job matrix defines extra_test_args
consistently.

315-332: Skip env-polluter verification step when list is empty.

With current matrix values, this step is a no-op on every OS. Adding a step-level guard makes intent clearer and trims unnecessary CI work.

🧹 Proposed guard
       - name: run cpython tests to check if env polluters have stopped polluting
+        if: ${{ join(matrix.env_polluting_tests, '') != '' }}
         shell: bash
         run: |
           for thing in ${{ join(matrix.env_polluting_tests, ' ') }}; do
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/ci.yaml around lines 315 - 332, The CI step named "run
cpython tests to check if env polluters have stopped polluting" currently runs
even when matrix.env_polluting_tests is empty; add a step-level guard so the
step only runs when matrix.env_polluting_tests is non-empty (i.e., check
matrix.env_polluting_tests before executing the for-loop), thereby skipping the
whole step when there are no env polluters to verify.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.github/workflows/ci.yaml:
- Around line 300-303: The workflow step "run cpython platform-independent
tests" uses a hardcoded "-u all" in the test command; replace that hardcoded arg
with the matrix variable already used elsewhere (matrix.extra_test_args or
env.PLATFORM_INDEPENDENT_TESTS) so the step consumes the same single source of
truth as the other test step—update the run string that invokes
"target/release/rustpython -m test ..." to include the matrix.extra_test_args
(or the existing PLATFORM_INDEPENDENT_TESTS env var) instead of "-u all" and
ensure the job matrix defines extra_test_args consistently.
- Around line 315-332: The CI step named "run cpython tests to check if env
polluters have stopped polluting" currently runs even when
matrix.env_polluting_tests is empty; add a step-level guard so the step only
runs when matrix.env_polluting_tests is non-empty (i.e., check
matrix.env_polluting_tests before executing the for-loop), thereby skipping the
whole step when there are no env polluters to verify.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: 934455a1-3965-4330-80dd-d4bd5b07da9a

📥 Commits

Reviewing files that changed from the base of the PR and between 36fed7d and b667837.

📒 Files selected for processing (1)
  • .github/workflows/ci.yaml

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ShaharNaveh
Merge remote-tracking branch 'upstream/main' into CLN-ci-matrix
8f5161f
youknowone
youknowone approved these changes Mar 17, 2026
View reviewed changes
@youknowone
youknowone merged commit 6b768ff into RustPython:main Mar 17, 2026
27 of 28 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@coderabbitai coderabbitai Bot mentioned this pull request Mar 18, 2026
Run CI tests with max processes #7254
Merged
youknowone pushed a commit to youknowone/RustPython that referenced this pull request Mar 19, 2026
@ShaharNaveh @youknowone
Cleanup ci.yaml matrix usage (RustPython#7260)
1eee1da
* cleanup

* Don't enable all resources on windows
youknowone pushed a commit to youknowone/RustPython that referenced this pull request Mar 22, 2026
@ShaharNaveh
Cleanup ci.yaml matrix usage (RustPython#7260)
5a7e6a8
* cleanup

* Don't enable all resources on windows
@coderabbitai coderabbitai Bot mentioned this pull request Mar 24, 2026
Resolve shellcheck warning on ci.yaml #7501
Merged
Copilot AI pushed a commit that referenced this pull request Mar 25, 2026
@ShaharNaveh
Cleanup ci.yaml matrix usage (#7260)
53ef3ed
* cleanup

* Don't enable all resources on windows
@coderabbitai coderabbitai Bot mentioned this pull request Mar 30, 2026
Split cargo check matrix to individual targets. Avoid cache poisoning #7540
Merged
youknowone pushed a commit that referenced this pull request Sep 16, 2026
@ShaharNaveh
Cleanup ci.yaml matrix usage (#7260)
0e49b70
* cleanup

* Don't enable all resources on windows
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@coderabbitai coderabbitai[bot] coderabbitai[bot] left review comments
@youknowone youknowone youknowone approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@ShaharNaveh @youknowone
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.