A build manifest is a YAML file that describes how to perform a build. Here's an example:
image: archlinux
packages:
- cmake
- wlc-git
- xorg-server-xwayland
- xcb-util-image
- json-c
- pango
- cairo
- wayland
- gdk-pixbuf2
- asciidoc
sources:
- https://github.com/SirCmpwn/sway
tasks:
- setup: |
cd sway
mkdir build
cd build
cmake ..
- build: |
cd sway
cd build
make
The minimum build manifest has an image and at least one task. The various properties available are described here:
string
Which OS image to build in. A list of available build images can be found here.
list (of string)
A list of package names to install on the image.
apk
yay
apt-get install
pkg
dictionary (of string: string)
A list of extra repositories to enable with the image's package manager. The format is name: url, and the syntax of url varies between images.
repo-url key-url key-name
, where repo-url
is the URL of
the package repository and key-url
is a URL from where the signing key may
be downloaded, and key-name
is the name of the file written to
/etc/apk/keys/
. If the name of the repo is prefixed with an @, it will use
that prefix in apk.url#key-id
, where url
is the URL of the package
repository and key-id
is the ID of the published PGP key the packages are
signed with.url distro component key-id
, where url
is the URL of the
package repository, distro
is e.g. jessie
or stretch
, component
is
e.g. main
or non-free
, and key-id
is an optional PGP key ID to add to
apt-key.list (of string)
A list of git repositories to clone into the home directory of the build user in the build environment.
list (of string)
A list of scripts to execute in the build environment. These scripts are run with the following preamble:
#!/usr/bin/env bash
. ~/.buildenv
set -x
set -e
~/.buildenv contains environment variables specified by the environment
directive.
Task names must use only lowercase alphanumeric characters or underscores and must be <=128 characters in length. Tasks are executed in the order specified.
Each task is run in a separate login session, so if you modify the groups of the
build
user they will be effective starting from the subsequent task.
list (of trigger)
A list of triggers to execute post-build, which can be used to send emails or do other post-build tasks.
See also: Build triggers
dictionary (of string: string OR string: list)
A list of key/value pairs for options to set in the build environment via ~/.buildenv.
list (of string)
List of secret UUIDs to be added to the guest during the build. See also: secrets.