Centralize backend-aware OpenVMM builds - #187
Merged
Merged
Conversation
Copilot started reviewing on behalf of
Pedro Henrique Penna (ppenna)
September 22, 2026 16:18
View session
Contributor
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The centralized build paths are consistently wired, documented, and covered across supported platforms and CI configurations.
Review effort: Balanced
Findings: None
What changed in this PR
Centralizes backend-aware OpenVMM and guest build configuration while unifying local and CI build paths.
Changes:
- Adds typed build configurations and backend-to-target selection.
- Normalizes OpenVMM outputs, provenance, caching, and CI invocation.
- Expands tests and documentation for the unified workflow.
| File | Description |
|---|---|
scripts/test_nvx_tools.py |
Expands build, backend, provenance, and CI coverage. |
scripts/nvx.py |
Routes CLI commands through typed configurations. |
scripts/nvx_tools/release.py |
Passes Docker configuration into source collection. |
scripts/nvx_tools/create_linux_source_archive.py |
Uses the centralized kernel configuration. |
scripts/nvx_tools/build.py |
Implements unified guest and backend-aware OpenVMM builds. |
scripts/nvx_tools/build_config.py |
Defines shared typed build configurations. |
doc/usage.md |
Documents backend CLI options. |
doc/project-structure.md |
Documents the configuration module. |
doc/ci.md |
Explains backend-aware CI builds and caches. |
doc/build.md |
Documents target selection and normalized outputs. |
.github/workflows/ci.yml |
Replaces explicit targets and modes with backends. |
.github/workflows/build-openvmm-binary.yml |
Simplifies reusable workflow inputs. |
.github/actions/build-openvmm/action.yml |
Uses the unified Python build path and backend cache keys. |
.github/actions/build-guest-artifacts/action.yml |
Includes build configuration in cache hashes. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Pedro Henrique Penna (ppenna)
force-pushed
the
feat-build-config
branch
from
September 22, 2026 18:08
59844fb to
48e5a73
Compare
Pedro Henrique Penna (ppenna)
marked this pull request as ready for review
September 22, 2026 18:09
Copilot started reviewing on behalf of
Pedro Henrique Penna (ppenna)
September 22, 2026 18:13
View session
Move shared build settings into typed configuration objects and route the guest, kernel, initramfs, Docker, release-source, and OpenVMM workflows through them. Select the OpenVMM target from the host OS and requested backend instead of probing runtime hypervisor devices. Support KVM/GNU, MSHV/musl, and WHP/MSVC through one Python build path, reject unsupported combinations before starting combined builds, normalize executable destinations, and record provenance after each successful build. Simplify the reusable CI workflow to pass only the backend, remove the duplicate musl shell build, version backend-aware binary caches, and include shared build configuration in guest artifact cache keys. Document backend selection and add coverage for CLI routing, platform validation, native and musl builds, output normalization, provenance, configuration defaults, source collection, and CI wiring.
Pedro Henrique Penna (ppenna)
force-pushed
the
feat-build-config
branch
from
September 22, 2026 18:35
48e5a73 to
a974d09
Compare
Copilot started reviewing on behalf of
Pedro Henrique Penna (ppenna)
September 22, 2026 18:40
View session
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.

Summary
allguest selection while routing aggregate builds through one configurationValidation
Rebased commit
48e5a731802f6ae08152ee0e1bfaf1c221397bc1ontoorigin/devataa197157f76d97af1c70492aeccec6b5e79283a4.Local validation:
Bare-metal validation (excluding Cobalt):
prometheus32/ Linux KVM:python3 scripts/nvx.py build --backend kvmprometheus30/ Linux MSHV:python3 scripts/nvx.py build --native --backend mshvprometheus28/ Windows WHP:python scripts\nvx.py build-openvmm --backend whppython scripts/nvx.py verifypassed on every isolated checkoutThe full aggregate Windows build was not run because Docker is not installed on
prometheus28; the platform-specific WHP OpenVMM build passed in the installed Visual Studio environment.