ci: peel the microVM boot suite into its own peer job (RIG-2697) - #608
Merged
Merged
Conversation
|
Compass engineering docs preview: https://compass-runner-2697-ci-micro.compass-eng-docs.pages.dev Deployed from |
This was referenced Aug 25, 2026
mattwilkinsonn
previously approved these changes
Aug 25, 2026
Base automatically changed from
compass-runner/2696-ci-pgtest-peer-job
to
main
August 25, 2026 19:54
Move the KVM microVM boot suite out of the monolithic `gates` job into a dedicated `microvm` peer job behind the single `CI` rollup, so the slow guest-boot leg (a guest-image realize plus a `-race` suite under a real VM) runs in parallel with the moon battery and the other peer jobs, and a KVM-availability flake reds only `microvm` rather than the whole gate. The three microVM steps move verbatim: the ephemeral-runner KVM + userns relaxations, the boot suite itself (COMPASS_REQUIRE_MICROVM=1, the out-of-band guest-image and VMM-env nix realizes), and the assert-ran guard. The job gets a checkout + install-nix + phase-one toolchain bootstrap (go on PATH is all it needs beyond its in-step realizes); it runs rootless on a bare runner, no privileged container. `gates` loses those three steps and nothing else. The `CI` rollup gains `microvm` in `needs` and a fourth result assertion, so the single required check is unchanged. Also close a closure-honesty gap the peel exposes: the microVM leg realizes tools/toolchain/microvm-vmm-env.nix, which no moon project tracked as an input. Add it to compass-guest-image's inputs so the moon graph — not a hand-kept path list — carries the leg's true build closure; a VMM-env-only change now marks the project affected once a later task gates the leg on the affected closure. microvm runs unconditionally on every gate event at this task; a later task gates it on the microVM affected-closure so an unaffected PR pays zero. Second task (T2) of the CI job-decomposition plan frozen in docs/designs/infra/ci/compass-ci-job-decomposition/design.md. Refs RIG-2697 Co-authored-by: Matt Wilkinson <matt@rigel.build>
rigel-mintaka
force-pushed
the
compass-runner/2697-ci-microvm-peer-job
branch
from
August 25, 2026 19:57
8ea8abd to
4ded7f5
Compare
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.
This PR is part of a stack containing 4 PRs:
mainMove the KVM microVM boot suite out of the monolithic
gatesjob into adedicated
microvmpeer job behind the singleCIrollup, so the slowguest-boot leg (a guest-image realize plus a
-racesuite under a real VM)runs in parallel with the moon battery and the other peer jobs, and a
KVM-availability flake reds only
microvmrather than the whole gate.The three microVM steps move verbatim: the ephemeral-runner KVM + userns
relaxations, the boot suite itself (COMPASS_REQUIRE_MICROVM=1, the
out-of-band guest-image and VMM-env nix realizes), and the assert-ran
guard. The job gets a checkout + install-nix + phase-one toolchain
bootstrap (go on PATH is all it needs beyond its in-step realizes); it runs
rootless on a bare runner, no privileged container.
gatesloses thosethree steps and nothing else. The
CIrollup gainsmicrovminneedsand a fourth result assertion, so the single required check is unchanged.
Also close a closure-honesty gap the peel exposes: the microVM leg realizes
tools/toolchain/microvm-vmm-env.nix, which no moon project tracked as an
input. Add it to compass-guest-image's inputs so the moon graph — not a
hand-kept path list — carries the leg's true build closure; a VMM-env-only
change now marks the project affected once a later task gates the leg on
the affected closure.
microvm runs unconditionally on every gate event at this task; a later task
gates it on the microVM affected-closure so an unaffected PR pays zero.
Second task (T2) of the CI job-decomposition plan frozen in
docs/designs/infra/ci/compass-ci-job-decomposition/design.md.
Refs RIG-2697
Co-authored-by: Matt Wilkinson matt@rigel.build