Commit 1c01d82
flowey: split openvmm-deps downloads for v0.3.0 artifact layout (#3483)
Adapts OSS flowey to consume the `microsoft/openvmm-deps` 0.3.0 release
layout.
Companion: **microsoft/openvmm-deps#62** (merged, [v0.3.0-29
released](https://github.com/microsoft/openvmm-deps/releases/tag/0.3.0-29)).
## openvmm-deps 0.3.0 artifacts
Each release ships three `.tar.gz` artifacts per arch:
| Artifact | Contents |
| --- | --- |
| `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:
`vmlinux`/`Image`, `bzImage` (x86_64), final `config` |
The Linux kernel + initrd here are a test payload only (Vtl0 `Example`
recipe, Linux-direct VMM tests). Production OpenHCL kernels flow through
`resolve_openhcl_kernel_package`.
## Nodes
- **`resolve_openvmm_deps`** — fetches
`openvmm-deps.<arch>.<ver>.tar.gz` and exposes individual files via
`OpenvmmDepFile` (`OpenhclCpioDbgrd` / `OpenhclCpioShell` /
`OpenhclSysroot` / `PetritoolsErofs`).
- **`resolve_openvmm_test_initrd`** — fetches
`openvmm-test-initrd.<arch>.<ver>.tar.gz` and returns the path to the
`initrd` file. Parameterized by arch.
- **`resolve_openvmm_test_linux_kernel`** — fetches
`openvmm-test-linux-<kver>.<arch>.<ver>.tar.gz` and returns the path to
a selected file via `OpenvmmTestKernelFile`: `Kernel` (the primary
`vmlinux` on x86_64 / `Image` on aarch64) or `BzImage` (x86_64 only).
Parameterized by `(file, arch, kver)`. Archive download + extraction is
deduped on `(arch, kver)` so requesting both `Kernel` and `BzImage` from
the same archive only extracts once. The `LinuxTestKernelVersion` enum
currently contains just `Linux6_1`; `DEFAULT_LINUX_TEST_KERNEL_VERSION`
is 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 with `needs_auth: false`) or `local_paths` (use a pre-extracted
directory on disk).
## Other changes
- `flowey_lib_common::_util::extract::extract_tar_gz_if_new` — cached
`.tar.gz` extract helper (`{root_dir}/.flowey_info/{filename}` tracks
`file_version`, skip re-extract on match), mirroring the existing
`extract_zip_if_new` / `extract_tar_bz2_if_new`.
- `cfg_versions::OPENVMM_DEPS = "0.3.0-29"` drives the `version` config
of all three resolve nodes.
- `init_vmm_tests_env`, `init_openvmm_magicpath_openvmm_deps`, and
`build_openhcl_igvm_from_recipe` request the kernel + initrd from the
new nodes; the magicpath and vmm_tests_env consumers also request
`BzImage` on x86_64.
- Pipeline YAMLs regenerated.
Co-authored-by: OpenVMM Team <openvmm@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>1 parent 9a7dbd5 commit 1c01d82
13 files changed
Lines changed: 831 additions & 228 deletions
File tree
- .github/workflows
- ci-flowey
- flowey
- flowey_lib_common/src/_util
- flowey_lib_hvlite/src
- _jobs
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments