VBuild
May 16, 2026 ยท View on GitHub
Build tool for https://vellum.delivery
Installation
Grab the latest compiled binary from the releases.
System requirements
- podman or docker
- openssl
- bash
Usage
vbuild is based off of alpine's abuild utility. It takes a VELBUILD file, translates it to a APKBUILD(5) and then uses abuild to create the final package(s).
VELBUILD Reference
VELBUILD is a superset of APKBUILD(5). It uses largely the same format, but has a few key extra variables/functions.
subpackage functions expect a package() method instead of a function body.
category
What category that the package is in. This can be any string, but should be kept short.
upstream_author
The author of the upstream source of what is being packaged.
preinstall
A function containing the contents of $pkgname.pre-install. See APKBUILD(5) for more information. This function can be called by the other lifecycle scripts.
postinstall
A function containing the contents of $pkgname.post-install. See APKBUILD(5) for more information. This function can be called by the other lifecycle scripts.
preupgrade
A function containing the contents of $pkgname.pre-upgrade. See APKBUILD(5) for more information. This function can be called by the other lifecycle scripts.
postupgrade
A function containing the contents of $pkgname.post-upgrade. See APKBUILD(5) for more information. This function can be called by the other lifecycle scripts.
predeinstall
A function containing the contents of $pkgname.pre-deinstall. See APKBUILD(5) for more information. This function can be called by the other lifecycle scripts.
postdeinstall
A function containing the contents of $pkgname.post-install. See APKBUILD(5) for more information. This function can be called by the other lifecycle scripts.
postosupgrade
A function containing the contents of $pkgname.post-os-upgrade.See vellum-dev/vellum for more information. This function can be called by the other lifecycle scripts.
systemdunits
A string array of filenames for systemd units to automatically deploy, enable, start, stop and disable as part of the package workflow. Template units will be disabled, but have to manually be enabled, started, and stopped.
image
Container image to use when running the build function. This can either be a variable, or a function that will echo the name of the image.
readmeurl
Link to readme file for the package. This should return the readme for the specific version of the package, ideally by pointing at the tag, or commit hash, not the primary branch.
donateurl
Link to page that allows users to donate to the author.
status
Current status of the package. Can be maintained, unmaintained, or deprecated. If excluded it will default to maintained.
Configuration files
vbuild will generate keys in ~/.config/vbuild that will be used to sign any packages produced. You can override these files if you wish to use your own pre-generated keys.
Building from source
All building is handled with the Makefile. Run make executable to create the executable in the dist/ directory.
Requirements
- python 3.12-3.13
- python-venv
- podman (If building the builder image)