Cuirass is a continuous integration tool for Guix. It can be used both for development and for providing substitutes to others (see Substitutes).
(gnu services cuirass) module provides the following service.
The type of the Cuirass service. Its value must be a
cuirass-configuration object, as described below.
To add build jobs, you have to set the
specifications field of
the configuration. Here is an example of a service defining a build job
based on a specification that can be found in Cuirass source tree. This
service polls the Guix repository and builds a subset of the Guix
packages, as prescribed in the gnu-system.scm example spec:
(let ((spec #~((#:name . "guix") (#:url . "git://git.savannah.gnu.org/guix.git") (#:load-path . ".") (#:file . "build-aux/cuirass/gnu-system.scm") (#:proc . cuirass-jobs) (#:arguments (subset . "hello")) (#:branch . "master")))) (service cuirass-service-type (cuirass-configuration (specifications #~(list '#$spec)))))
While information related to build jobs is located directly in the
specifications, global settings for the
cuirass process are
accessible in other
Data type representing the configuration of Cuirass.
Location of the log file.
Location of the repository cache.
Owner of the
Owner’s group of the
Number of seconds between the poll of the repositories followed by the Cuirass jobs.
Location of sqlite database which contains the build results and previously added specifications.
Port number used by the HTTP server.
Listen on the network interface for host. The default is to accept connections from localhost.
A gexp (see G-Expressions) that evaluates to a list of specifications,
where a specification is an association list
(see Associations Lists in GNU Guile Reference Manual) whose
keys are keywords (
#:keyword-example) as shown in the example
This allows using substitutes to avoid building every dependencies of a job from source.
Only evaluate specifications and build derivations once.
When substituting a pre-built binary fails, fall back to building packages locally.
This allows users to define their own packages and make them visible to
cuirass as in
guix build command.
The Cuirass package to use.