-
Martin Blanchard authored
#51
Martin Blanchard authored#51
BuildStream client
BuildStream is a “tool for integrating software stacks”: it produces build outputs from multiple input sources, using the existing sources build systems. It supports remote build execution using the remote execution API (REAPI) v2.
Note
No stable BuildStream version have been released with remote execution support yet: you'll have to install it from sources in order use remote build execution.
Configuration
BuildStream uses YAML for build definition and configuration. It has two
levels of configuration: user and project level. User-level configuration is
stored in your buildstream.conf
file while project-level configuration
is defined in each project's project.conf
file.
Note
At the moment, remote execution can only be configured at project-level.
Project configuration
In order to activate remote build execution at project-level, the project's
project.conf
file must declare two specific configuration nodes:
-
artifacts
for remote CAS endpoint details. -
remote-execution
for remote execution endpoint details.
Important
BuildStream does not support multi-instance remote execution servers and thus will always submit remote execution request omitting the instance name parameter.
Important
If you are using BuildGrid's artifact server, the server instance must accept pushes from your client for remote execution to be possible.
BuildBox tool
BuildStream performs builds in a sandbox on top of a project-defined
environment, not relying on any host-tools. BuildGrid supports this kind of
builds using the buildbox
bot, a specific kind of bot relying on
BuildBox for build execution.
BuildBox can execute build commands in a sandbox on top of an environment constructed from provided sources using FUSE. It also uses bubblewrap for sandboxing without requiring root privileges.
BuildBox being a rather young project, it isn't packaged yet and you'll have to build it from sources. You may want follow the manual instructions or prefer to build it with BuildStream using the dedicated integration project (recommanded).
Important
Whatever the method you use to install BuildBox, you also have to install bubblewrap along, minimum required version being 0.1.8.