Runners
Runners are in charge of preparing an environment and executing an Action
in it.
Different implementations are free to choose their own way of creating that environment, and may choose to provide features such as sandboxing.
Since different types of runners will have similar functionality, buildbox-common provides a Runner
base class that can be used to reduce code duplication.
Current implementations
buildbox-run-hosttools
https://gitlab.com/BuildGrid/buildbox/buildbox/-/tree/master/run-hosttools/
This is the simplest runner, providing no sandboxing. It invokes the build tools that are available on the local system.
buildbox-run-userchroot
https://gitlab.com/BuildGrid/buildbox/buildbox/-/tree/master/run-userchroot/
It allows to execute commands in a sandbox created by userchroot.
buildbox-run-bubblewrap
https://gitlab.com/BuildGrid/buildbox/buildbox/-/tree/master/run-bubblewrap/
It uses bubblewrap to provide sandboxing.
Execution metrics metadata
Runners based on buildboxcommon::Runner support returning execution metrics as part of the ExecutedActionMetadata
.
See this section for more details: ExecutedActionMetadata.