CI: Split up some builds to a new job#3388
Open
smalis-msft wants to merge 13 commits intomicrosoft:mainfrom
Open
CI: Split up some builds to a new job#3388smalis-msft wants to merge 13 commits intomicrosoft:mainfrom
smalis-msft wants to merge 13 commits intomicrosoft:mainfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Introduces a new “shared” Linux build job to move select cross-platform VMM-test dependencies out of the larger Linux build job, aiming to unblock VMM test execution earlier in CI.
Changes:
- Added a new Linux “(shared)” job to build artifacts consumed by multiple VMM test jobs (e.g.,
tmks,guest_test_uefi,tpm_guest_tests, muslpipette/tmk_vmm, muslopenvmm/openvmm_vhost). - Renamed/re-scoped the existing Linux artifacts job to focus on Linux VMM test needs and removed some dependencies from it.
- Adjusted artifact wiring so Windows and Linux VMM test jobs consume the newly shared artifacts.
Collaborator
|
this is nice if you find that this works, but queue times are higher after the shuffling, it may be that we need to change the distribution of warm images. @tjones60 and I are hacking around the infra now, we can coordinate |
Member
|
how much time are we saving? |
Contributor
Author
|
We're still doing the sameish total amount of work, so not necessarily saving any total run time. But hopefully this lets the VMM test jobs start up maybe a few minutes earlier. |
245975c to
e589759
Compare
e589759 to
ddaa875
Compare
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
tjones60
approved these changes
May 5, 2026
tjones60
approved these changes
May 5, 2026
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 introduces the concept of a "shared" artifact build job, in addition to our preexisting for-vmm-test and not-for-vmm-test jobs. This new job takes over building artifacts used by VMM tests on multiple platforms, while the for-vmm-test jobs are relegated to only building artifacts used by VMM tests on that particular platform. This spreads the load out, cleans up our job dependency graph, and hopefully should allow VMM tests to begin running slightly sooner.
The end result is that every "run VMM tests job" now always depends on:
build "shared" artifacts (both linux and windows)
build "for VMM tests" artifacts on same OS for architecture
...and optionally, if it runs OpenHCL tests:
build OpenHCL for architecture
We now also always run a "build "for VMM tests" artifacts for aarch64-linux" job even though we have no VMM tests on aarch64-linux yet, to ensure that these artifacts still build properly. We could consider removing this job until it is needed.
As a result of this split I needed to move the installation of the "build-essential" package to be required by all cargo build invocations, which is probably where it should've been to begin with.
Before:

After:
