This repository provides a reference setup for building and distributing static binaries of monitors and tools supported by urunc.
The following components are currently supported:
This repository serves as a hub for storing various builds of urunc's
supported monitors and provides an easy platform for building both newer and
older versions of them.
Every user can request the build of any monitor version by opening a new Pull Request (PR). The process is the following one:
- Specify the monitor version to build: The version of each monitor is
specified in the
VERSIONfile located in its respective directory (e.g., for Solo5, the version is in solo5/VERSION). - Open a new PR: Create new PR with the version change.
- PR workflow gets triggered: Upon opening a new PR a workflow will check whether a) the requested versions of monitors have been built before and if these artifacts are still valid and b) a previous release includes these monitors. If a monitor with the specified version does not exist, then the workflow will build it. The workflow will comment in the PR with the findings.
- Merge of PR and creation of new relase: Upon the approval and merge of the PR in the main branch, a new workflow will collect all the artifacts of the monitors and create a new release following the release naming scheme.
Note for QEMU
Since QEMU is highly configurable, the build process also tracks changes in the following configuration files:
- amd64.config: Configuration for building Qemu on amd64 architectures,
- arm64.config: Configuration for building Qemu on arm64 architectures.
- excluded files list: the list with the excluded files from the final Qemu installation directory.
Releases follow this naming format:
FC-<firecracker_version>_S5-<solo5_version>_VFS-<virtiofsd_version>_QM-<qemu_version>-<qemu_config_and_exclude_files_hash>
For example FC-v1.7.0_S5-v0.9.3_VFS_-v1.13.1_QM-v10.1.1-d4dd3 contains
statically built artifacts for:
- Firecracker v1.7.0
- Solo5 v0.9.3
- Virtiofsd v1.13.1
- Qemu v10.1.1 with a hash generated by the config files and the excluded files file under Qemu's directory.