Skip to content

Improve distribution workflow#18

Open
dpsoft wants to merge 1 commit intomainfrom
feat/improve-distribution
Open

Improve distribution workflow#18
dpsoft wants to merge 1 commit intomainfrom
feat/improve-distribution

Conversation

@dpsoft
Copy link
Contributor

@dpsoft dpsoft commented Mar 5, 2026

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 voidbox using 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:

  • The GitHub Actions workflow in .github/workflows/release.yml now builds and packages release artifacts for Linux (x86_64 and aarch64) and macOS (aarch64), producing both tarballs and native packages (.deb and .rpm). It also automates Homebrew tap updates for macOS users. [1] [2] [3]
  • Adds an nfpm.yaml configuration file for building .deb and .rpm packages, specifying contents, dependencies, and install locations for all required files.

Artifact building and staging:

  • The scripts/build_release_artifacts.sh script is refactored to build and stage all required binaries and images, create tarballs for shell installation, and prepare the dist/ directory for packaging. Guest agent, kernel, and initramfs are now consistently staged and checksummed. [1] [2]

Installer and user experience:

  • Introduces a new scripts/install.sh shell installer that automatically detects platform/architecture, fetches the latest release, and installs all necessary files to standard locations (/usr/local/bin and /usr/local/lib/voidbox), supporting both Linux and macOS.

Code support for packaged artifacts:

  • Adds new logic in src/artifacts.rs to 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:

  • Overhauls .github/workflows/release.yml to build, package, and upload release artifacts for Linux (x86_64/aarch64) and macOS (aarch64), including native .deb/.rpm packages and automated Homebrew tap updates for macOS. [1] [2] [3]
  • Adds nfpm.yaml for declarative Linux package builds with correct dependencies and install paths.

Artifact building and staging:

  • Refactors scripts/build_release_artifacts.sh to stage all release files for packaging, generate tarballs for shell installer, and ensure consistent artifact naming and checksums. [1] [2]

Installer and user experience:

  • Introduces scripts/install.sh, a cross-platform shell installer for easy installation and upgrade of voidbox and its artifacts.

Code support for packaged artifacts:

  • Adds logic in src/artifacts.rs to resolve installed kernel/initramfs images from standard package manager paths, with unit tests for platform detection and artifact discovery. [1] [2]

…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.
@dpsoft dpsoft requested a review from Copilot March 5, 2026 18:01
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants