[not merge]ci: stop running a5 onboard jobs#1346
Conversation
Remove the two self-hosted a5 (onboard) CI jobs, `ut-a5` and `st-onboard-a5`, so nothing is scheduled on the `[self-hosted, a5]` runner. a5 coverage remains through the sim job `st-sim-a5` on github-hosted runners. `detect-changes` keeps emitting `a5_changed` — it still gates `st-sim-a5` and `profiling-flags-smoke`. No a5 source is touched. docs/ci.md is updated to match the new job set.
📝 WalkthroughWalkthroughChangesA5 CI Coverage Removal
Estimated code review effort: 2 (Simple) | ~10 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
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.
Code Review
This pull request updates the CI documentation in docs/ci.md to reflect the removal of a5 self-hosted (onboard) jobs, indicating that a5 testing is now simulation-only. The review feedback points out a few remaining inconsistencies in the documentation that should be updated to match these changes, such as updating the gated jobs description and correcting the runner column for the Platform-specific (a5) tier.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| - `detect-changes` computes two flags (`a2a3_changed`, `a5_changed`) from the PR diff. Each flag is `false` only when *every* changed file is in the opposite platform's tree (`src/{arch}/`, `examples/{arch}/`, `tests/{st,ut/cpp}/{arch}/`) or in the `NON_CODE` set (`docs/`, `.docs/`, `.claude/`, `.gitignore`, `.pre-commit-config.yaml`, and any `*.md` file anywhere). Anything else — shared C++ (`src/common/`), Python (`python/`, `simpler_setup/`), build files (`CMakeLists.txt`, `pyproject.toml`), shared test infra (`tests/ut/py/`, `tests/lint/`), tooling (`tools/`), or workflow files (`.github/`) — flips both flags to `true`. | ||
| - **Gated jobs (scene tests only):** `st-sim-{a2a3,a5}`, `st-onboard-{a2a3,a5}` run iff their platform's flag is `true`. | ||
| - **Unconditional jobs (all UT):** `ut`, `ut-a2a3`, `ut-a5` always run regardless of the flags — unit tests exercise shared contracts (nanobind bindings, RuntimeBuilder, ring buffers, etc.) and the risk of silently skipping a regression outweighs the CI minutes saved. The `tests/ut/cpp/{arch}/` entry in the gating regex only *attributes* an arch-specific C++ UT change to that platform (so it does not spuriously flip the other arch's scene-test flag); it does not gate the UT jobs themselves. A consequence: self-hosted runners (`a2a3`, `a5`) are always busy for at least the UT job, even on doc-only PRs that skip all scene tests. | ||
| - **Unconditional jobs (all UT):** `ut`, `ut-a2a3` always run regardless of the flags — unit tests exercise shared contracts (nanobind bindings, RuntimeBuilder, ring buffers, etc.) and the risk of silently skipping a regression outweighs the CI minutes saved. The `tests/ut/cpp/{arch}/` entry in the gating regex only *attributes* an arch-specific C++ UT change to that platform (so it does not spuriously flip the other arch's scene-test flag); it does not gate the UT jobs themselves. A consequence: the `a2a3` self-hosted runner is always busy for at least the UT job, even on doc-only PRs that skip all scene tests. |
There was a problem hiding this comment.
While updating the unconditional UT jobs description, please also update the gated jobs description in the preceding section. Since st-onboard-a5 has been removed, the gated onboard jobs only include st-onboard-a2a3 instead of st-onboard-{a2a3,a5}.
References
- Avoid referencing specific line numbers in documentation to prevent them from becoming stale as the codebase evolves. Instead, refer to the file name and the specific context or variable name, which provides sufficient precision without the risk of drifting.
| | No hardware | `ubuntu-latest` | `ut`, `st-sim-*` | | ||
| | Platform-specific (a2a3) | `[self-hosted, a2a3]` | `ut-a2a3`, `st-onboard-a2a3` | | ||
| | Platform-specific (a5) | `[self-hosted, a5]` | `ut-a5`, `st-onboard-a5` | | ||
| | Platform-specific (a5) | `[self-hosted, a5]` | *(no CI jobs; a5 is sim-only)* | |
There was a problem hiding this comment.
Since all self-hosted a5 jobs (ut-a5 and st-onboard-a5) have been removed from the CI pipeline, there are no longer any CI jobs running on the [self-hosted, a5] runner. To avoid confusion, the CI Runner column for the Platform-specific (a5) tier should be updated to *(none)* or N/A.
Additionally, please note that the a5 row in the tests/ut/cpp/ table is also obsolete for CI and should be removed or updated accordingly.
| | Platform-specific (a5) | `[self-hosted, a5]` | *(no CI jobs; a5 is sim-only)* | | |
| | Platform-specific (a5) | *(none)* | *(no CI jobs; a5 is sim-only)* | |
References
- Avoid referencing specific line numbers in documentation to prevent them from becoming stale as the codebase evolves. Instead, refer to the file name and the specific context or variable name, which provides sufficient precision without the risk of drifting.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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 132: Update the preceding scheduling bullet in docs/ci.md to remove
st-onboard-a5 and list only st-onboard-a2a3 for gated runs, keeping the
surrounding scheduling guidance unchanged.
🪄 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
Run ID: ec37f585-47be-4eeb-ba6c-79de4b091e9d
📒 Files selected for processing (2)
.github/workflows/ci.ymldocs/ci.md
💤 Files with no reviewable changes (1)
- .github/workflows/ci.yml
| - `detect-changes` computes two flags (`a2a3_changed`, `a5_changed`) from the PR diff. Each flag is `false` only when *every* changed file is in the opposite platform's tree (`src/{arch}/`, `examples/{arch}/`, `tests/{st,ut/cpp}/{arch}/`) or in the `NON_CODE` set (`docs/`, `.docs/`, `.claude/`, `.gitignore`, `.pre-commit-config.yaml`, and any `*.md` file anywhere). Anything else — shared C++ (`src/common/`), Python (`python/`, `simpler_setup/`), build files (`CMakeLists.txt`, `pyproject.toml`), shared test infra (`tests/ut/py/`, `tests/lint/`), tooling (`tools/`), or workflow files (`.github/`) — flips both flags to `true`. | ||
| - **Gated jobs (scene tests only):** `st-sim-{a2a3,a5}`, `st-onboard-{a2a3,a5}` run iff their platform's flag is `true`. | ||
| - **Unconditional jobs (all UT):** `ut`, `ut-a2a3`, `ut-a5` always run regardless of the flags — unit tests exercise shared contracts (nanobind bindings, RuntimeBuilder, ring buffers, etc.) and the risk of silently skipping a regression outweighs the CI minutes saved. The `tests/ut/cpp/{arch}/` entry in the gating regex only *attributes* an arch-specific C++ UT change to that platform (so it does not spuriously flip the other arch's scene-test flag); it does not gate the UT jobs themselves. A consequence: self-hosted runners (`a2a3`, `a5`) are always busy for at least the UT job, even on doc-only PRs that skip all scene tests. | ||
| - **Unconditional jobs (all UT):** `ut`, `ut-a2a3` always run regardless of the flags — unit tests exercise shared contracts (nanobind bindings, RuntimeBuilder, ring buffers, etc.) and the risk of silently skipping a regression outweighs the CI minutes saved. The `tests/ut/cpp/{arch}/` entry in the gating regex only *attributes* an arch-specific C++ UT change to that platform (so it does not spuriously flip the other arch's scene-test flag); it does not gate the UT jobs themselves. A consequence: the `a2a3` self-hosted runner is always busy for at least the UT job, even on doc-only PRs that skip all scene tests. |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Remove the stale st-onboard-a5 scheduling reference.
The preceding scheduling bullet on Line 131 still says st-onboard-{a2a3,a5} runs when gated, contradicting this PR’s removal of st-onboard-a5. Update it to list only st-onboard-a2a3.
🤖 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 132, Update the preceding scheduling bullet in docs/ci.md
to remove st-onboard-a5 and list only st-onboard-a2a3 for gated runs, keeping
the surrounding scheduling guidance unchanged.
What
Stop scheduling any CI on the self-hosted a5 (onboard) runner by removing
the two jobs that target
[self-hosted, a5]:ut-a5— a5 hardware Python + C++ unit tests + cann-examples smokesst-onboard-a5— a5 hardware scene tests + DFX smokes (dep_gen / l2_swimlane / PMU / args_dump)Why not the other a5 things
st-sim-a5runs on github-hosted runners (no hardware) and is untouched — a5 keeps sim coverage.detect-changes/a5_changedstays. It still gatesst-sim-a5andprofiling-flags-smoke, so it is intentionally kept..github/workflows/ci.yml) plus the CI doc.Docs
docs/ci.mdupdated to match the new job set: matrix table, job tree, job table, hardware-classification table, and the unconditional-UT / scheduling notes now reflect that a5 has no onboard jobs and is sim-only.Nothing in the pipeline
needs:the removed jobs, so no aggregation/gate job is affected.sanitizers.ymlis sim-only and unchanged.