ci(linux-kvm): make the lane gate-ready — changes filter, aggregator, apt retries - #698
Conversation
… apt retries Converts the KVM lane to the always-triggered pattern (#687): the trigger-level path filter moves into a `changes` job (dorny/paths-filter, SHA-pinned, pull-requests: read), the e2e gates on its output (workflow_dispatch runs everything), and a new `if: always()` aggregator — ci-linux-kvm-success — reports success when the e2e passed OR was path-skipped and red only on failure/cancellation. The context joins the required checks after the lane soaks green; until then the lane stays advisory exactly as before. Retries apt installs, the one step class with recorded transient failures in lane history: the sole main-branch KVM failure (run 28897380911) and both of its manual re-runs died in "Install build dependencies", and the macOS artifacts job failed twice in "Install protoc". scripts/ci/retry.sh wraps those three call sites (KVM deps, setup-rust protoc, mac-artifacts protoc); fetches stay un-retried — zero recorded failures. Refs: #687 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughChangesCI resilience and KVM test execution
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant changes
participant build-linux
participant test-kvm
participant run-testbin.sh
participant testbins.json
participant minvmd
changes->>build-linux: Gate KVM build on relevant changes
build-linux->>test-kvm: Provide uploaded testbed artifact
test-kvm->>run-testbin.sh: Request target harness execution
run-testbin.sh->>testbins.json: Resolve hash-suffixed binary
run-testbin.sh->>minvmd: Execute staged E2E harness
minvmd-->>test-kvm: Return test result
Possibly related issues
Possibly related PRs
Suggested labels: Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
Remove scripts/ci/retry.sh and unwrap its three call sites (KVM build deps, setup-rust protoc, ci-macos artifacts protoc). One recorded apt transient in lane history does not justify carrying retry machinery; if apt flakes recur we can reintroduce it with fresh evidence. Refs: #687 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Dropped the apt retry wrapper per review discussion (627fb0b): |
…e toolchain pin Two fallouts from this PR's own run: - clippy 1.97 flags for_kv_map at checkouts/src/lib.rs:287 - iterate git_remotes.values_mut() instead of discarding the key. The one-time lint surfacing is the point of pinning. - the native lane's changes filter and the mac lane's trigger paths did not include rust-toolchain.toml, so this PR's own lanes skipped: a toolchain bump must re-run every Rust lane. The KVM lane's filter gains the same entry on the #698 branch (its trigger section is rewritten there; touching main's copy would conflict). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
rust-toolchain.toml joins the KVM changes filter: a rustc bump must re-run every Rust lane. Applied here post-#698-merge (the filter's file was rewritten there). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
What
PR5 of the CI refactor (#687). Off
main, independent of the mac stack.Converts the KVM lane to the always-triggered pattern so it can become a required check after a soak:
changesjob (dorny/paths-filter, SHA-pinnedv3.0.2,pull-requests: read). Same path list, now evaluated inside the workflow;workflow_dispatchruns everything. The header documents why trigger-levelpaths:must never return: a required context skipped by one stays "Expected" forever and wedges the PR.if: always()aggregatorci-linux-kvm-success— green when the e2e passed or was path-skipped, red only on failure/cancellation. It joins the ruleset after the lane soaks green (admin step in feature: CI refactor — clear build/test phases, three gating targets #687); until then the lane stays advisory exactly as today.scripts/ci/retry.sh, 3×10s): mining ~200 runs per VM lane found zero failures in the artifact/libkrun/gvproxy fetches but a consistent transient class in apt — the only main-branch KVM failure in the window (run 28897380911) and both of its manual re-runs died inInstall build dependencies, and the macartifactsjob failed twice inInstall protoc. Those three call sites (KVM deps,setup-rustprotoc, mac-artifacts protoc) are now retried; fetches stay un-retried.Verification
actionlint— no new findings (one pre-existing SC2012 carried over verbatim). This PR triggers the lane itself (always-triggered now), so its own run exercises the changes-gate, the retried apt step, and the aggregator.🤖 Generated with Claude Code
Summary by CodeRabbit