Skip to content

Route sim Linux CI to self-hosted CPU runners - #1570

Closed
luohuan19 wants to merge 6 commits into
mainfrom
ci/self-hosted-cpu-sim
Closed

Route sim Linux CI to self-hosted CPU runners#1570
luohuan19 wants to merge 6 commits into
mainfrom
ci/self-hosted-cpu-sim

Conversation

@luohuan19

Copy link
Copy Markdown
Contributor

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

@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: cc6ea6cb-b576-4b98-bdae-7e607940df9a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Simulation jobs now route Linux legs to the self-hosted CPU runner pool, retain macOS GitHub-hosted legs, and document the updated CI scheduling model.

Changes

Simulation runner routing

Layer / File(s) Summary
Simulation workflow runner matrix
.github/workflows/ci.yml
st-sim-a2a3 and st-sim-a5 use explicit self-hosted CPU and macOS matrix entries, both pinned to Python 3.10.
CI runner routing documentation
docs/ci.md
CI diagrams, tables, scheduling guidance, parallelism notes, and hardware classification describe the revised simulation runner placement.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Poem

A bunny hops where CPU runners gleam,
Linux finds its pool, macOS keeps its stream.
Matrices bloom with Python ten,
CI paths grow clear again.
Hop, hop—tests run clean!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: routing sim Linux CI to self-hosted CPU runners.
Description check ✅ Passed The description accurately describes the CI split, docs update, and unchanged non-sim jobs.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
⚔️ Resolve merge conflicts 💡
  • Resolve merge conflict in branch ci/self-hosted-cpu-sim

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

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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

📥 Commits

Reviewing files that changed from the base of the PR and between 8e89f01 and d62a904.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • docs/ci.md

Comment thread docs/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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ 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.

Comment thread docs/ci.md
| Tier | CI Runner | Job examples |
| ---- | --------- | ------------ |
| No hardware | `ubuntu-latest` | `ut`, `st-sim-*` |
| No hardware | `ubuntu-latest`, `self-hosted [cpu]` | `ut`, `st-sim-*` |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ 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.

@hw-native-sys-bot
hw-native-sys-bot force-pushed the ci/self-hosted-cpu-sim branch 2 times, most recently from 9843374 to b0068f3 Compare July 30, 2026 01:33
Use the self-hosted CPU runner pool for sim Linux jobs, avoid sudo, and run those jobs through the repository venv.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants