ci: narrow the GPU serve matrix with a serve paths-filter + PR canary (EAI-7746) - #156
Open
fredespi wants to merge 1 commit into
Open
ci: narrow the GPU serve matrix with a serve paths-filter + PR canary (EAI-7746)#156fredespi wants to merge 1 commit into
fredespi wants to merge 1 commit into
Conversation
…I-7746) The `changes` job gated the three self-hosted GPU E2E jobs on the coarse `heavy` filter, so any Rust change (dashboard, unrelated crates) fired the whole real-GPU serve matrix on scarce serial hardware. - Add a dedicated `serve` paths-filter (serve code path + engines + E2E harness + broad-dep safety nets; excludes the rocm-dash crates) and gate the GPU jobs on it, so non-serve Rust PRs skip the matrix. Forced true off-PR so the merge queue always runs the full matrix. - Gate the two Strix lanes to merge_group/push only; keep the MI300X lane on pull_request in canary mode (E2E_PR_CANARY) running a single minimal real serve as a pre-merge smoke. - Add a `@canary` / `@serves-on-gpu` harness gate (mirrors `@nightly`): in canary mode every GPU-serving scenario except the canary resolves to Skip, keeping platform.json valid so the consolidated report reconciles. - Gate the consolidated report on `heavy || serve` so a serve-only change still produces it. Signed-off-by: fredespi <fredrik.espinoza@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The
changesjob gated the three self-hosted GPU E2E jobs (e2e-gpu,e2e-gpu-strix-ubuntu,e2e-gpu-strix-windows) on the coarseheavypaths-filter, which trips on any**/*.rschange. So a Rust PR that can't affect serving (dashboard, unrelated crates) fired the whole real-GPU serve matrix on scarce serial hardware. This narrows that matrix and adds a fast pre-merge serve canary.Changes
servepaths-filter (EAI-7746): a dedicated filter covering the serve code path (engines/**,crates/rocm-core,crates/rocm-engine-protocol,apps/rocm,apps/rocmd), the E2E harness (tests/e2e-cucumber/**,crates/e2e-report,xtask,**/*.feature), plus broad-dep safety nets (rootCargo.toml,Cargo.lock,rust-toolchain*, workflow files). Excludes therocm-dash-*crates — they build intorocmbut can't change serve behaviour, and their compile coverage stays on the always-on build/test lanes. The GPU jobs now gate onserve; forced true off-PR so the merge queue always runs the full matrix (required checks never starved).merge_group/pushonly (skip on PR; required-but-continue-on-error, so the skip satisfies branch protection). The MI300X lane still runs onpull_requestbut in canary mode (E2E_PR_CANARY), serving only a single minimal real scenario as a pre-merge smoke; the full matrix runs in the merge queue.@canary/@serves-on-gpuharness gate (mirrors@nightly): in canary mode every GPU-serving scenario except the canary resolves toSkip, soplatform.jsonstays valid and the consolidated report reconciles.@serves-on-gputags the scenarios that real-serve on a GPU host without@requires-gpu(short-name expansion, chat behavioural) so they're skipped in canary mode but still mock-covered every PR.heavy || serveso a serve-only change still produces the requiredE2E consolidated reportcheck.Test plan
--workspace --all-targets --exclude e2e-cucumber -D warnings, workspace tests,e2e-cucumber --lib, andcargo xtask e2emock lane (reconciliation: 3 xfail / 0 XPASS / 0 unexpected).servegates exactly the 3 GPU jobs + report;heavystill gates the mock/build/test lanes.@canaryscenario.