-
Notifications
You must be signed in to change notification settings - Fork 161
flowey: add --use-local-deps option to build-igvm, add local request variant to download_openvmm_deps #2388
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
flowey: add --use-local-deps option to build-igvm, add local request variant to download_openvmm_deps #2388
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds support for using locally-downloaded dependencies in the flowey build system as a step toward reproducible builds. The main change renames download_openvmm_deps to resolve_openvmm_deps and adds a LocalPath request variant alongside the existing Version variant. A new --use-local-deps CLI option is added to the build-igvm pipeline for local testing.
Key changes:
- Renamed
download_openvmm_depsmodule toresolve_openvmm_depsto reflect its dual purpose (download or resolve local paths) - Added
LocalPathrequest variant with logic to resolve dependencies from local x64/aarch64 subdirectories - Added
--use-local-depsand--custom-openvmm-depsCLI options to build-igvm pipeline for testing with local dependencies
Reviewed Changes
Copilot reviewed 19 out of 19 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| flowey/flowey_lib_hvlite/src/resolve_openvmm_deps.rs | Adds LocalPath request variant and implementation to resolve dependencies from local filesystem paths with x64/aarch64 subdirectory structure |
| flowey/flowey_lib_hvlite/src/lib.rs | Updates module declaration from download_openvmm_deps to resolve_openvmm_deps |
| flowey/flowey_lib_hvlite/src/init_vmm_tests_env.rs | Updates import and request references to use resolve_openvmm_deps |
| flowey/flowey_lib_hvlite/src/init_openvmm_magicpath_openhcl_sysroot.rs | Updates import and request references to use resolve_openvmm_deps |
| flowey/flowey_lib_hvlite/src/init_openvmm_magicpath_linux_test_kernel.rs | Updates import and request references to use resolve_openvmm_deps |
| flowey/flowey_lib_hvlite/src/build_openhcl_initrd.rs | Updates import and request references to use resolve_openvmm_deps |
| flowey/flowey_lib_hvlite/src/build_openhcl_igvm_from_recipe.rs | Updates import and request references to use resolve_openvmm_deps |
| flowey/flowey_lib_hvlite/src/_jobs/cfg_versions.rs | Adds LocalDependencyRequest struct and Local/Download request variants; routes local dependency requests to resolve_openvmm_deps |
| flowey/flowey_lib_hvlite/src/_jobs/cfg_common.rs | Updates import to use resolve_openvmm_deps |
| flowey/flowey_hvlite/src/pipelines/vmm_tests.rs | Changes cfg_versions request from struct to Download enum variant |
| flowey/flowey_hvlite/src/pipelines/restore_packages.rs | Changes cfg_versions request from struct to Download enum variant |
| flowey/flowey_hvlite/src/pipelines/mod.rs | Updates clippy lint attribute from cfg_attr to unconditional expect |
| flowey/flowey_hvlite/src/pipelines/custom_vmfirmwareigvm_dll.rs | Changes cfg_versions request from struct to Download enum variant |
| flowey/flowey_hvlite/src/pipelines/checkin_gates.rs | Changes cfg_versions request from struct to Download enum variant |
| flowey/flowey_hvlite/src/pipelines/build_igvm.rs | Adds --use-local-deps and --custom-openvmm-deps CLI parameters; conditionally uses Local or Download cfg_versions request |
| flowey/flowey_hvlite/src/pipelines/build_docs.rs | Changes cfg_versions request from struct to Download enum variant |
| .github/workflows/openvmm-pr.yaml | Updates generated workflow step names from download_openvmm_deps to resolve_openvmm_deps |
| .github/workflows/openvmm-pr-release.yaml | Updates generated workflow step names from download_openvmm_deps to resolve_openvmm_deps |
| .github/workflows/openvmm-ci.yaml | Updates generated workflow step names from download_openvmm_deps to resolve_openvmm_deps |
Comments suppressed due to low confidence (2)
flowey/flowey_lib_hvlite/src/resolve_openvmm_deps.rs:71
- The error message refers to "Path requests" but the actual request variant is named
LocalPath. Consider updating the error message for consistency: "Cannot specify both Version and LocalPath requests".
flowey/flowey_lib_hvlite/src/resolve_openvmm_deps.rs:75 - The error message refers to "Path request" but the actual request variant is named
LocalPath. Consider updating the error message for consistency: "Must specify a Version or LocalPath request".
88bce71 to
ab5ffa1
Compare
In order to get to reproducible builds, we're going to need all nodes that currently download something at build time to allow for Nix to download them instead and then specify the path at which they've been downloaded. There are several nodes that don't currently have Local override request variants. I've started with
download_openvmm_deps(renamed toresolve_openvmm_deps, but have also plumbed a--use-local-depscommand line parameter to build-igvm for testing locally.