flowey: split openvmm-deps downloads for v0.3.0 artifact layout#3483
Merged
benhillis merged 1 commit intoMay 18, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates Flowey infrastructure to consume the upcoming split microsoft/openvmm-deps artifact layout, separating the main dependency archive from per-kernel Linux test payload archives.
Changes:
- Adds Linux test kernel version selection to
download_openvmm_deps. - Switches OpenVMM deps extraction/downloads from
.tar.bz2to split.tar.gzartifacts. - Regenerates CI workflow YAMLs for the new Flowey graph.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
flowey/flowey_lib_hvlite/src/init_vmm_tests_env.rs |
Passes the default Linux test kernel version when requesting VMM test kernel/initrd. |
flowey/flowey_lib_hvlite/src/init_openvmm_magicpath_linux_test_kernel.rs |
Passes the default Linux test kernel version for magic-path setup. |
flowey/flowey_lib_hvlite/src/download_openvmm_deps.rs |
Implements split main/per-kernel artifact download and extraction logic. |
flowey/flowey_lib_hvlite/src/build_openhcl_igvm_from_recipe.rs |
Updates example VTL0 kernel requests to include a kernel version. |
flowey/flowey_lib_hvlite/src/_jobs/cfg_versions.rs |
Bumps OPENVMM_DEPS to the placeholder v0.3.0 artifact version. |
flowey/flowey_lib_common/src/_util/extract.rs |
Adds a reusable .tar.gz extraction helper. |
.github/workflows/openvmm-pr.yaml |
Regenerated PR workflow for the updated Flowey graph. |
.github/workflows/openvmm-ci.yaml |
Regenerated CI workflow for the updated Flowey graph. |
benhillis
commented
May 13, 2026
benhillis
commented
May 13, 2026
benhillis
commented
May 14, 2026
benhillis
commented
May 14, 2026
4647acf to
e15759e
Compare
benhillis
commented
May 15, 2026
benhillis
pushed a commit
to benhillis/openvmm
that referenced
this pull request
May 15, 2026
Post-split, no `OpenvmmDepFile` variant has an arch-dependent filename (the only ones that did — kernel and initrd — moved out into their own nodes). Drop the now-dead `_arch` parameter and update both call sites. Addresses review feedback on microsoft#3483. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
bc7d967 to
77bc743
Compare
openvmm-deps 0.3.0 ships three .tar.gz artifacts per arch: - openvmm-deps.<arch>.<ver>.tar.gz: sdk + dbgrd + shell + petritools - openvmm-test-initrd.<arch>.<ver>.tar.gz: shared test guest-userland initrd - openvmm-test-linux-6.1.<arch>.<ver>.tar.gz: 6.1 LTS test kernel image (vmlinux/Image), bzImage (x86_64), and final config Add matching flowey resolve nodes: - `resolve_openvmm_deps` (slimmed): exposes individual files from the main openvmm-deps tarball via `OpenvmmDepFile` (Dbgrd, Shell, Sysroot, PetritoolsErofs). - `resolve_openvmm_test_initrd`: returns the path to the shared `initrd` file. Parameterized by arch. - `resolve_openvmm_test_linux_kernel`: returns paths to files in the per-(arch, kver) test kernel archive via `OpenvmmTestKernelFile` (`Kernel` for the primary vmlinux/Image image, `BzImage` for the x86_64-only bzImage). Parameterized by `(file, arch, kver)`. The `LinuxTestKernelVersion` enum currently contains just `Linux6_1`. All three nodes accept either a `version` (download from the public GH release with `needs_auth: false`) or `local_paths` (use a pre-extracted directory on disk). The kernel resolver dedupes archive download + extraction on `(arch, kver)`, so requesting both `Kernel` and `BzImage` from the same archive only extracts once. Add `flowey_lib_common::_util::extract::extract_tar_gz_if_new`, mirroring the existing `extract_zip_if_new` / `extract_tar_bz2_if_new` helpers. Wire `init_vmm_tests_env`, `init_openvmm_magicpath_openvmm_deps`, and `build_openhcl_igvm_from_recipe` to request the kernel + initrd from the new nodes. Pin `OPENVMM_DEPS = "0.3.0-29"`. Pipeline YAMLs regenerated. Companion: microsoft/openvmm-deps#62 (merged as v0.3.0-29). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
77bc743 to
ac1b7a0
Compare
smalis-msft
approved these changes
May 18, 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.
Adapts OSS flowey to consume the
microsoft/openvmm-deps0.3.0 release layout.Companion: microsoft/openvmm-deps#62 (merged, v0.3.0-29 released).
openvmm-deps 0.3.0 artifacts
Each release ships three
.tar.gzartifacts per arch:openvmm-deps.<arch>.<ver>.tar.gzopenvmm-test-initrd.<arch>.<ver>.tar.gzopenvmm-test-linux-6.1.<arch>.<ver>.tar.gzvmlinux/Image,bzImage(x86_64), finalconfigThe Linux kernel + initrd here are a test payload only (Vtl0
Examplerecipe, Linux-direct VMM tests). Production OpenHCL kernels flow throughresolve_openhcl_kernel_package.Nodes
resolve_openvmm_deps— fetchesopenvmm-deps.<arch>.<ver>.tar.gzand exposes individual files viaOpenvmmDepFile(OpenhclCpioDbgrd/OpenhclCpioShell/OpenhclSysroot/PetritoolsErofs).resolve_openvmm_test_initrd— fetchesopenvmm-test-initrd.<arch>.<ver>.tar.gzand returns the path to theinitrdfile. Parameterized by arch.resolve_openvmm_test_linux_kernel— fetchesopenvmm-test-linux-<kver>.<arch>.<ver>.tar.gzand returns the path to a selected file viaOpenvmmTestKernelFile:Kernel(the primaryvmlinuxon x86_64 /Imageon aarch64) orBzImage(x86_64 only). Parameterized by(file, arch, kver). Archive download + extraction is deduped on(arch, kver)so requesting bothKernelandBzImagefrom the same archive only extracts once. TheLinuxTestKernelVersionenum currently contains justLinux6_1;DEFAULT_LINUX_TEST_KERNEL_VERSIONis exported for callers that don't care which kernel they get. Future kernel lines are added by extending the enum.All three nodes accept either a
version(download from the public GH release withneeds_auth: false) orlocal_paths(use a pre-extracted directory on disk).Other changes
flowey_lib_common::_util::extract::extract_tar_gz_if_new— cached.tar.gzextract helper ({root_dir}/.flowey_info/{filename}tracksfile_version, skip re-extract on match), mirroring the existingextract_zip_if_new/extract_tar_bz2_if_new.cfg_versions::OPENVMM_DEPS = "0.3.0-29"drives theversionconfig of all three resolve nodes.init_vmm_tests_env,init_openvmm_magicpath_openvmm_deps, andbuild_openhcl_igvm_from_reciperequest the kernel + initrd from the new nodes; the magicpath and vmm_tests_env consumers also requestBzImageon x86_64.