Test: run only the a5 jobs, on the new [self-hosted, a5, test] runner - #1510
Test: run only the a5 jobs, on the new [self-hosted, a5, test] runner#1510luohuan19 wants to merge 3 commits into
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:
📝 WalkthroughWalkthroughThe CI workflow temporarily disables most standard, simulation, profiling, change-detection, and a2a3 jobs. The a5 unit and onboarding jobs remain enabled with updated runner labels and without their previous gating dependencies. ChangesCI workflow execution
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
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.
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 @.github/workflows/ci.yml:
- Line 763: Update both a5 jobs at .github/workflows/ci.yml lines 763-763 and
831-831, including the ut-a5 and st-onboard-a5 task-submit child invocations, so
their pytest/ctest commands target the device selected by task-submit via
$TASK_DEVICE or the generated locked device list instead of ${DEVICE_RANGE};
preserve the existing device locking and test setup.
🪄 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: ad775a9a-8b58-4348-b750-e02f764c0cf0
📒 Files selected for processing (1)
.github/workflows/ci.yml
| ut-a5: | ||
| needs: pre-commit | ||
| runs-on: [self-hosted, a5] | ||
| runs-on: [self-hosted, a5, test] |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
rg -n -C 4 '\b(task-submit|TASK_DEVICE|DEVICE_RANGE)\b' .Repository: hw-native-sys/simpler
Length of output: 50379
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "## ci.yml runs-on and task-submit command excerpts"
sed -n '740,785p' .github/workflows/ci.yml
sed -n '810,850p' .github/workflows/ci.yml
echo
echo "## task-submit and DEVICE_RANGE in ci.yml"
rg -n -C 3 '\b(task-submit|DEVICE_RANGE|TASK_DEVICE)\b' .github/workflows/ci.yml
echo
echo "## ci.yml variable context for ut-a5/st-onboard-a5"
rg -n -C 2 'ut-a5|st-onboard-a5|DEVICE_RANGE|pytest|ctest|tensormap_and_ringbuffer' .github/workflows/ci.ymlRepository: hw-native-sys/simpler
Length of output: 33603
Pass the task-assigned device to the a5 task-submit children.
Both ut-a5 and st-onboard-a5 build DEVICE_LIST/PYTEST from ${DEVICE_RANGE}, then run child pytest/ctest with ${DEVICE_RANGE} while locked via task-submit --device "$DEVICE_LIST". The existing ARM64 hardware work passes $TASK_DEVICE so the child targets the same device selected by task-submit; these a5 jobs should also pass $TASK_DEVICE or the generated locked device list.
📍 Affects 1 file
.github/workflows/ci.yml#L763-L763(this comment).github/workflows/ci.yml#L831-L831
🤖 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 @.github/workflows/ci.yml at line 763, Update both a5 jobs at
.github/workflows/ci.yml lines 763-763 and 831-831, including the ut-a5 and
st-onboard-a5 task-submit child invocations, so their pytest/ctest commands
target the device selected by task-submit via $TASK_DEVICE or the generated
locked device list instead of ${DEVICE_RANGE}; preserve the existing device
locking and test setup.
6eef2df to
21a383d
Compare
57a12d4 to
88a5e59
Compare
Point ut-a5 and st-onboard-a5 at the newly added a5 runner label and gate every other job off with `if: false`, so a CI run on this branch exercises that runner alone. st-onboard-a5 loses the `false &&` guard it carried while the old a5 runner was under repair, and both a5 jobs drop their `needs:` on the now-disabled pre-commit / detect-changes jobs — a `needs:` on a skipped job would skip them too. This is a temporary validation branch, not intended to merge as-is; the header comment in the jobs block records what to revert.
Fall back to the driver OCCUPY bitmap when CPU_TOPO is unavailable so A5 affinity selection can still enumerate the user-schedulable AICPU pool. Add a pure C++ regression test and document the 25.7.rc1.6 driver behavior.
ut-a5's C++ step only ran `ctest -L '^requires_hardware(_a5)?$'`, but no test carries that label: the sole hardware UT, test_comm_lifecycle, is a2a3-bound (it hardcodes the a2a3 host_runtime path and is labelled requires_hardware_a2a3). ctest exits 0 on an empty selection, so the step was green while executing nothing — including, until now, every pure-logic C++ test on the a5 runner. Run the no_hardware suite (49 tests, ~4s, no device needed) before the device-locked hardware selection. --no-tests=error on that run makes a future label typo fail loudly instead of silently selecting nothing. The a5 hardware selection stays as-is and still matches nothing; adding --no-tests=error there would fail the job until the first a5 hardware UT exists, so a comment records the state instead.
Summary
Temporary CI branch to validate the newly added a5 self-hosted runner in isolation. Not intended to merge as-is.
ut-a5andst-onboard-a5now targetruns-on: [self-hosted, a5, test].pre-commit,packaging-matrix,ut,st-sim-a2a3,st-sim-a5,profiling-flags-smoke,ut-a2a3,st-onboard-a2a3,detect-changes) is gated off withif: false.needs:onpre-commit/detect-changes— aneeds:on a skipped job would skip them too.st-onboard-a5loses thefalse &&guard it carried while the old a5 runner was under repair, so it actually runs here.A header comment in the
jobs:block records the temporary state. Reverting it restores the normal pipeline; theif:expressions to write back areneeds.detect-changes.outputs.a2a3_changed == 'true'(st-sim-a2a3, st-onboard-a2a3),..a5_changed == 'true'(st-sim-a5), and the||of both (profiling-flags-smoke).Testing
.github/workflows/ci.ymlparses as valid YAML; job gating verified job-by-jobtest-labelled runner and run to completion — that is what this PR is forNote: the a5 jobs rely on the runner-level
DEVICE_RANGEenv var; if the new runner does not export it, theDEVICE_LISTcomputation yields an empty device list.