Route sim Linux CI to self-hosted CPU runners - #1570
Conversation
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughSimulation jobs now route Linux legs to the self-hosted CPU runner pool, retain macOS GitHub-hosted legs, and document the updated CI scheduling model. ChangesSimulation runner routing
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1⚔️ Resolve merge conflicts 💡
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: 2
🤖 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.
Inline comments:
In `@docs/ci.md`:
- Line 142: Update the Full Job Matrix in docs/ci.md to move st-sim-a2a3 and
st-sim-a5 out of the github-hosted “No hardware” column and into the self-hosted
[cpu] classification, matching the runner split defined above. Keep the
remaining job classifications unchanged.
- Line 12: Update the CI documentation for the simulation runner configuration
to state that Linux legs targeting the ["self-hosted", "cpu"] labels have no
fallback and remain queued when that pool is unavailable; replace conditional
wording such as “can be routed,” “if you want,” and “when available” with this
actual behavior, without changing the workflow unless an explicit fallback is
intended.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 10801d98-b6f3-4a22-b07b-a9b000758f76
📒 Files selected for processing (2)
.github/workflows/ci.ymldocs/ci.md
| 2. **Runner matches hardware tier** — no-hardware tests run on `ubuntu-latest`; platform-specific tests run on self-hosted runners with the matching label (`a2a3`, `a5`). | ||
| 3. **`--platform` is the only filter** — pytest uses `--platform` + the `requires_hardware` marker; ctest uses label `-LE` exclusion. No `-m st`, no `-m "not requires_hardware"`. | ||
| 4. **sim = no hardware** — `a2a3sim`/`a5sim` jobs run on github-hosted runners alongside unit tests. | ||
| 4. **sim = no hardware** — `a2a3sim`/`a5sim` keep the macOS leg on GitHub-hosted runners, while the Linux leg can be routed to the local `cpu` self-hosted pool to escape the 4-vCPU ceiling. |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
Document the workflow’s lack of runner fallback.
.github/workflows/ci.yml hard-codes each Linux simulation leg to ["self-hosted", "cpu"]; if that pool is unavailable, the job queues rather than falling back to ubuntu-latest. Replace “can be routed,” “if you want,” and “when available” with the actual behavior, or implement an explicit fallback if that is intended.
Also applies to: 103-106, 131-131
🤖 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 `@docs/ci.md` at line 12, Update the CI documentation for the simulation runner
configuration to state that Linux legs targeting the ["self-hosted", "cpu"]
labels have no fallback and remain queued when that pool is unavailable; replace
conditional wording such as “can be routed,” “if you want,” and “when available”
with this actual behavior, without changing the workflow unless an explicit
fallback is intended.
| | Tier | CI Runner | Job examples | | ||
| | ---- | --------- | ------------ | | ||
| | No hardware | `ubuntu-latest` | `ut`, `st-sim-*` | | ||
| | No hardware | `ubuntu-latest`, `self-hosted [cpu]` | `ut`, `st-sim-*` | |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win
Update the Full Job Matrix for the new CPU pool.
The updated classification adds self-hosted [cpu], but the Full Job Matrix above still presents st-sim-a2a3 and st-sim-a5 under the github-hosted (no hardware) column. Align that table with the updated runner split shown at lines 43–44.
🤖 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 `@docs/ci.md` at line 142, Update the Full Job Matrix in docs/ci.md to move
st-sim-a2a3 and st-sim-a5 out of the github-hosted “No hardware” column and into
the self-hosted [cpu] classification, matching the runner split defined above.
Keep the remaining job classifications unchanged.
9843374 to
b0068f3
Compare
e5fb618 to
a81c5f1
Compare
Use the self-hosted CPU runner pool for sim Linux jobs, avoid sudo, and run those jobs through the repository venv.
a81c5f1 to
6cfa132
Compare
Summary:\n- Move the Linux leg of st-sim-a2a3 and st-sim-a5 to self-hosted cpu runners\n- Keep macOS legs on GitHub-hosted runners\n- Update docs to reflect the new CI split\n\nNotes:\n- Provisioned 5 cpu runners on this machine for hw-native-sys/simpler\n- Did not change non-sim jobs\n