3.0 KiB
title |
---|
Build manifest reference |
A build manifest is a YAML file that describes how to perform a build. Here's an example:
image: archlinux
packages:
- meson
- scdoc
- wayland-protocols
- wlroots-git
- wayland
- libxkbcommon
- cairo
- pango
- gdk-pixbuf2
- pixman
- libinput
- xorg-server-xwayland
sources:
- https://github.com/SirCmpwn/sway
tasks:
- setup: |
cd sway
meson build
- build: |
cd sway
ninja -C build
The minimum build manifest has an image and at least one task. The various properties available are described here:
image
string
Which OS image to build in. A list of available build images can be found on the compatibility page.
packages
list (of string)
A list of packages to install on the image. For image-specific details, consult the compatibility list
repositories
dictionary (of string: string)
A list of extra repositories to enable with the image's package manager. The specific format varies by base image, consult the compatibility page for details.
sources
list (of string)
A list of repositories to clone into the home directory of the build user in the build environment. Optionally, prefix the protocol with the source control management scheme, to specify a protocol other than git. Examples:
https://git.sr.ht/~sircmpwn/scdoc
: git over httpsgit@git.sr.ht:~sircmpwn/scdoc
: git over SSH (requires key)hg+https://hg.sr.ht/~sircmpwn/scdoc
: Mercurial over httpshg+ssh://hg.sr.ht/~sircmpwn/scdoc
: Mercurial over SSH (requires key)
tasks
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.
triggers
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
environment
dictionary (of string: string OR string: list)
A list of key/value pairs for options to set in the build environment via
~/.buildenv
.
Since the value will be parsed twice, once as YAML and once by bash
,
string literals containing spaces must be 'doubly quoted':
environment:
GIT_SSH_COMMAND: '"ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"'
secrets
list (of string)
List of secret UUIDs to be added to the guest during the build. See also: secrets.