[rb] streamline tests on github actions runners#17550
Conversation
Review Summary by Qodo(Agentic_describe updated until commit e883e27)Streamline Ruby CI workflow with smoke and full test job separation
WalkthroughsDescription• Restructure Ruby CI workflow to split tests into smoke and full test jobs • Replace commit message/PR title parsing with explicit target passing • Add wrapper script to handle bazel test exit code 4 gracefully • Update browser tag filters to use stable versions for smoke tests • Remove lint as a separate test job and convert to binary • Adjust unit test matrix to cover truffleruby and latest MRI only Diagramflowchart LR
A["CI Trigger"] --> B["Read Targets"]
B --> C["Lint"]
B --> D["Unit Tests"]
B --> E["Smoke Tests"]
B --> F["OS Tests Full"]
E --> G["Test Results"]
D --> G
F --> G
C --> G
File Changes1. .github/workflows/ci-ruby.yml
|
Code Review by Qodo
1. Safari setup skipped
|
|
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
2de1da4 to
e883e27
Compare
|
Code review by qodo was updated up to the latest commit e883e27 |
|
Code review by qodo was updated up to the latest commit 8f2902e |
🔗 Related Issues
Ruby implementation of #17539
Supersedes #16813
💥 What does this PR do?
Splits execution into two pieces: manual/scheduled and PR/Push
PR/Push
Scheduled/Manual
Removes processing commit messages and PR titles for
[rb]to decide what to run for a PRRemoves lint as a test so it doesn't run rbe and on github - runs via rubocop run target instead of test
Breakdown by target and integration test
Numbers are approximate based on averages
🔧 Implementation Notes
🤖 AI assistance