Open
Conversation
…d packaging support - Introduced `install.sh` script for simplified installation on Linux and macOS. - Enhanced release artifact generation with host binaries, guest agent, initramfs, and kernel staging. - Added `.tar.gz` packaging for shell-based installer compatibility. - Integrated `.deb` and `.rpm` package creation using `nfpm` for Linux distributions. - Updated CI workflows for multi-arch artifact builds and Homebrew tap automation.
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 pull request introduces a comprehensive overhaul of the release packaging and distribution workflow for the project, focusing on improved cross-platform support (Linux x86_64, Linux aarch64, and macOS aarch64), streamlined artifact packaging, and easier installation for end users. The changes include new packaging scripts, updated CI workflows, a shell installer, and code updates to detect installed artifacts. These improvements make it much easier for users to install and upgrade
voidboxusing standard package managers or a one-line shell installer, and ensure all necessary binaries and images are bundled and discoverable.Release workflow and packaging improvements:
.github/workflows/release.ymlnow builds and packages release artifacts for Linux (x86_64 and aarch64) and macOS (aarch64), producing both tarballs and native packages (.deband.rpm). It also automates Homebrew tap updates for macOS users. [1] [2] [3]nfpm.yamlconfiguration file for building.deband.rpmpackages, specifying contents, dependencies, and install locations for all required files.Artifact building and staging:
scripts/build_release_artifacts.shscript is refactored to build and stage all required binaries and images, create tarballs for shell installation, and prepare thedist/directory for packaging. Guest agent, kernel, and initramfs are now consistently staged and checksummed. [1] [2]Installer and user experience:
scripts/install.shshell installer that automatically detects platform/architecture, fetches the latest release, and installs all necessary files to standard locations (/usr/local/binand/usr/local/lib/voidbox), supporting both Linux and macOS.Code support for packaged artifacts:
src/artifacts.rsto detect installed kernel and initramfs images from well-known package manager paths, supporting both Linux and macOS conventions. Includes corresponding unit tests for these features. [1] [2]Release workflow and packaging:
.github/workflows/release.ymlto build, package, and upload release artifacts for Linux (x86_64/aarch64) and macOS (aarch64), including native.deb/.rpmpackages and automated Homebrew tap updates for macOS. [1] [2] [3]nfpm.yamlfor declarative Linux package builds with correct dependencies and install paths.Artifact building and staging:
scripts/build_release_artifacts.shto stage all release files for packaging, generate tarballs for shell installer, and ensure consistent artifact naming and checksums. [1] [2]Installer and user experience:
scripts/install.sh, a cross-platform shell installer for easy installation and upgrade ofvoidboxand its artifacts.Code support for packaged artifacts:
src/artifacts.rsto resolve installed kernel/initramfs images from standard package manager paths, with unit tests for platform detection and artifact discovery. [1] [2]