CI: split per-arch NPU/sim workflows and merge OS setup steps - #1687
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (12)
📝 WalkthroughWalkthroughThe PR splits simulator and NPU CI workflows by a2a3 and a5 architecture. It adds dedicated A5 workflows, specializes existing a2a3 workflows, updates CI dispatch, consolidates setup steps, and updates CI timeout documentation. ChangesArchitecture-specific CI workflows
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant CI
participant ReusableWorkflow
participant TestRunner
CI->>ReusableWorkflow: call architecture-specific workflow
ReusableWorkflow->>TestRunner: configure environment and tests
TestRunner->>ReusableWorkflow: return execution status
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 |
workflows branching on platform / runner.os via if:. Behavior was preserved, but each job rendered the other variant's steps as skipped rows in the Actions UI — st-onboard-a2a3 showed 7 skipped a5/legacy rows, and packaging/ut showed skipped Linux/macOS compiler sibling rows. Split the arch-specific workflows one file per platform so each job lists only its own steps: _st-npu.yml -> _st-npu-a2a3.yml + _st-npu-a5.yml _st-sim.yml -> _st-sim-a2a3.yml + _st-sim-a5.yml _ut-npu.yml -> _ut-npu-a2a3.yml + _ut-npu-a5.yml The platform input is dropped (now implied by the file) and the platform value hardcoded. Lane-correlated gates (a2a3_sdma_mode, include_dfx_smokes, include_cann_examples) remain as the accepted residual skip. Merge the OS-conditional setup pairs into single uname-branching steps: _packaging.yml (C++ compiler) and _ut-no-hardware.yml (GoogleTest). Also correct a stale env-var name in docs (PTO2_*_TIMEOUT_* -> SIMPLER_*_TIMEOUT_*); the PTO2_* timeout env vars do not exist, the runtime reads SIMPLER_*. Effect on the github lane: st-onboard-a2a3 7->2 skipped, st-onboard-a5 / st-sim / ut -> 0 skipped; packaging/ut drop the OS sibling skip. Verified: YAML parse + actionlint clean; task-submit invocation counts unchanged (_st-npu 14, _ut-npu 4); zero residual inputs.platform and runner.os Linux/macOS step pairs.
3d93dc3 to
b5c87dd
Compare
…ive-sys#1687) workflows branching on platform / runner.os via if:. Behavior was preserved, but each job rendered the other variant's steps as skipped rows in the Actions UI — st-onboard-a2a3 showed 7 skipped a5/legacy rows, and packaging/ut showed skipped Linux/macOS compiler sibling rows. Split the arch-specific workflows one file per platform so each job lists only its own steps: _st-npu.yml -> _st-npu-a2a3.yml + _st-npu-a5.yml _st-sim.yml -> _st-sim-a2a3.yml + _st-sim-a5.yml _ut-npu.yml -> _ut-npu-a2a3.yml + _ut-npu-a5.yml The platform input is dropped (now implied by the file) and the platform value hardcoded. Lane-correlated gates (a2a3_sdma_mode, include_dfx_smokes, include_cann_examples) remain as the accepted residual skip. Merge the OS-conditional setup pairs into single uname-branching steps: _packaging.yml (C++ compiler) and _ut-no-hardware.yml (GoogleTest). Also correct a stale env-var name in docs (PTO2_*_TIMEOUT_* -> SIMPLER_*_TIMEOUT_*); the PTO2_* timeout env vars do not exist, the runtime reads SIMPLER_*. Effect on the github lane: st-onboard-a2a3 7->2 skipped, st-onboard-a5 / st-sim / ut -> 0 skipped; packaging/ut drop the OS sibling skip. Verified: YAML parse + actionlint clean; task-submit invocation counts unchanged (_st-npu 14, _ut-npu 4); zero residual inputs.platform and runner.os Linux/macOS step pairs.
Summary
Follow-up to #1640, which consolidated the a2a3/a5 NPU and sim jobs into shared reusable workflows branching on
platform/runner.osviaif:. Behavior was preserved, but each job rendered the other variant's steps as skipped rows in the Actions UI —st-onboard-a2a3showed 7 skipped a5/legacy rows, andpackaging/utshowed skipped Linux/macOS compiler sibling rows._st-npu.yml→_st-npu-a2a3.yml+_st-npu-a5.yml_st-sim.yml→_st-sim-a2a3.yml+_st-sim-a5.yml_ut-npu.yml→_ut-npu-a2a3.yml+_ut-npu-a5.ymlplatforminput is dropped (now implied by the file) and the platform value hardcoded. Lane-correlated gates (a2a3_sdma_mode,include_dfx_smokes,include_cann_examples) remain as the accepted residual skip.uname-branching steps:_packaging.yml(C++ compiler) and_ut-no-hardware.yml(GoogleTest).PTO2_*_TIMEOUT_*→SIMPLER_*_TIMEOUT_*indocs/ci.mdanddocs/troubleshooting/device-error-codes/stall.md— thePTO2_*timeout env vars do not exist; the runtimegetenv-readsSIMPLER_*.Effect (github lane — what every PR sees)
st-onboard-a2a3: 7 → 2 skipped (legacy SDMA mode only)st-onboard-a5/st-sim-*/ut-*: → 0 skippedpackaging/ut: no more Linux/macOS sibling skipTesting
yaml.safe_loadover all workflows + composite actions;actionlintclean (only pre-existing shellcheck style notes + the known self-hostedcpulabel)task-submitinvocation counts unchanged (_st-npu14→14,_ut-npu4→4); no test steps lostinputs.platformin split files; zerorunner.os == Linux/macOSstep pairs; callers pass no danglingplatform:st-onboard-a2a3shows ~12 steps with only 2 skipped (legacy), andst-onboard-a5shows 0 skipped