Next: , Previous: , Up: Cuirass   [Contents][Index]

5 Build modes

Cuirass supports two mechanisms to build derivations.

5.1 With the local Guix daemon

This is the default build mechanism. Once the build jobs are evaluated, they are sent to the local Guix daemon. Cuirass then listens to the Guix daemon output to detect the various build events.

While this mode doesn’t require any particular configuration, it doesn’t scale well. The scheduling decisions of the Guix daemon are opaque and often suboptimal.

When Cuirass is used to build a large amount of jobs, the remote build mechanism described below should be preferred.

5.2 With the remote build mechanism.

This mode is harder to setup but scales way better. This is the build mode that is used on the GNU Guix build farm at The build jobs are not submitted to the local Guix daemon. Instead, a remote server dispatches build requests to the connect remote workers, according to the build priorities.

The remote server and the connected workers communicate using ZMQ over TCP. The workers are able to discover the remote server using Avahi.

The built items are exchanged as substitutes (see Substitutes in Guix) by spawning Guix publish servers both on the remote server and on each connected remote worker.

It can be enabled this way:

Note that some Cuirass features are only available when using this build mode. That’s the case for:

The easiest way to setup such an infrastructure is to rely on the GNU Guix Cuirass services definitions (see Continuous Integration in Guix).

Alternatively, there is a systemd service unit file installed at $CUIRASS_PREFIX/lib/systemd/system/cuirass-remote-worker.service to launch the cuirass remote-worker on systems which use systemd. It can be installed and enabled as follows:

sudo install -o root -g root -m 644 \
     $CUIRASS_PREFIX/lib/systemd/system/cuirass-remote-worker.service \
sudo systemctl enable cuirass-remote-worker.service
sudo systemctl start cuirass-remote-worker.service

Next: Invocation, Previous: Parameters, Up: Cuirass   [Contents][Index]