test(e2e): gate heavy GPU serves to the merge queue - #157
Conversation
The full real-GPU serve matrix ran on every PR, making the per-PR GPU lanes slow. Add a @merge-queue scenario axis (mirroring @nightly) so the redundant default-engine and readiness serves run only in the merge queue, while one real serve per engine (vLLM, lemonade) stays on the PR path as a pre-merge canary. The GPU E2E jobs still run on pull_request and produce their required checks; only the work is trimmed. ci.yml sets E2E_MERGE_QUEUE on the merge_group event to opt those scenarios back in before a change lands. Signed-off-by: fredespi <fredrik.espinoza@gmail.com>
|
Automated review pass over the diff against The mechanism itself checks out. Verified directly: the Findings, most severe first1. 2. 3. 4. The PR description's framing overstates the safety net (pre-existing mechanism, but this change leans on it). 5. 6. Checked and clean
Worth reinforcing
Not verified
|
Summary
The full real-GPU serve matrix ran on every PR, making the per-PR GPU lanes slow. This gates the redundant heavy serves to the merge queue while keeping one real serve per engine on the PR path as a pre-merge canary, so a broken serve is still caught before a change enters the queue.
Changes
@merge-queuescenario axis, mirroring the existing@nightlyone: a newmerge_queuefield onScenarioDecl, aninclude_merge_queuearg toresolve()with a skip branch, and anE2E_MERGE_QUEUEenv read in the harness.serve-default-engine-working-endpoint,serve-default-engine-inference,serve-readiness-contract)@merge-queueso they run only in the merge queue.serve-vllm-inference(vLLM) andserve-lemonade-inference(lemonade) untagged as per-engine PR canaries.ci.ymlsetsE2E_MERGE_QUEUEon themerge_groupevent for all three GPU jobs. The jobs still run onpull_requestand produce their required checks; only the work is trimmed.Test plan
cargo fmt --check,cargo clippy --workspace --all-targets --exclude e2e-cucumber -- -D warningsclean (Linux container).cargo test --workspace+cargo test -p e2e-cucumber --libgreen (64/64, incl. a newmerge_queue_scenario_skips_unless_includedunit test).