[rb] streamline tests on github actions runners#17550
Conversation
Review Summary by QodoStreamline Ruby CI tests on GitHub Actions runners
WalkthroughsDescription• Streamline Ruby CI by passing affected targets from main workflow • Reduce unit test matrix by relying on OS-specific integration tests • Replace commit message/PR title parsing with target-based filtering • Consolidate browser-specific tests into unified OS test matrix • Update test tags from no-sandbox to semantic labels (unit, lint) Diagramflowchart LR
A["ci.yml<br/>read-targets"] -->|"rb_targets"| B["ci-ruby.yml<br/>workflow_call"]
B --> C["unit-tests<br/>reduced matrix"]
B --> D["os-tests<br/>ubuntu/windows/macos"]
D --> E["browser-specific<br/>tag filters"]
F["rb/spec/tests.bzl<br/>rb_unit_test"] -->|"tags: unit"| C
G["rb/BUILD.bazel<br/>lint"] -->|"tags: lint"| B
File Changes1. .github/workflows/ci-ruby.yml
|
Code Review by Qodo
1. Invalid matrix.tag-filters access
|
|
Persistent review updated to latest commit fa50a25 |
There was a problem hiding this comment.
Pull request overview
Streamlines Ruby CI on GitHub Actions runners by switching Ruby workflow execution to be driven by the Bazel “affected targets” list, and consolidating more signal into OS-specific test jobs (instead of a broader unit-test OS matrix).
Changes:
- Pass Ruby affected targets from
ci.ymlintoci-ruby.ymland gate Ruby CI on those targets being present. - Replace the prior Ruby CI job layout with OS-specific test runs using Bazel tag filters, plus a smaller Ruby interpreter unit-test matrix.
- Update Bazel tags for Ruby unit and lint targets to support the new filtering approach.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
rb/spec/tests.bzl |
Retags Ruby unit test targets to support CI tag filtering. |
rb/BUILD.bazel |
Retags the Ruby lint target to be filterable via Bazel tag filters. |
.skipped-tests |
Removes a previously skipped Ruby BiDi test label from the skip list. |
.github/workflows/ci.yml |
Emits Ruby affected targets (rb_targets) and passes them into the Ruby reusable workflow. |
.github/workflows/ci-ruby.yml |
Restructures Ruby CI to run OS-specific Bazel tests over affected targets with tag filters and a reduced unit-test matrix. |
|
Persistent review updated to latest commit 2f0d00f |
|
Persistent review updated to latest commit 035aaf6 |
|
Persistent review updated to latest commit 7e9d57a |
|
Persistent review updated to latest commit 6c8325e |
|
Persistent review updated to latest commit 2f4b024 |
|
Persistent review updated to latest commit e6d425f |
|
Persistent review updated to latest commit 6d6cb6f |
|
Persistent review updated to latest commit f0a30f7 |
|
Persistent review updated to latest commit 02d2d5c |
c9df9f6 to
f05ec3d
Compare
CI Feedback 🧐A test triggered by this PR failed. Here is an AI-generated analysis of the failure:
|
🔗 Related Issues
Ruby implementation of #17539
Supersedes #16813
💥 What does this PR do?
[rb]to decide what to run for a PR, everything is gated off affected targets evaluated🔧 Implementation Notes
These OS tests will include multiple browsers, but need to specify browser name as safari to get safaridriver setup, and browser name can't be blank so I used true
🤖 AI assistance
💡 Additional Considerations
Currently running local and remote, considering limiting it to just local, especially for safari. I'll time the runs to compare