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

1 Specifications

The main Cuirass argument is the specification file. It describes the repositories that must be used, the build jobs and their priorities between other things.

Data Type: specification

The specification name as a Scheme symbol.

build (default: all)

The packages to be built by Cuirass. It defaults to all, which means that all the discovered packages in the subsequent channels field are to be selected.

It is also possible to set this field to:

  • core Build only the core packages such as gcc, guile and glibc.
  • guix Build only the Guix modules that are involved in the guix pull command.
  • hello Build only the hello package.
  • images Build only the Guix System images.
  • system-tests Build only the Guix System tests.
  • tarball Build only the Guix binary tarball.
  • (custom . list) Build only the jobs returned by the cuirass-jobs procedure of each module in list.
  • (channels . list) Build only the packages that are part of the given channel list. For instance, (channels my-channel) will only build the packages that are part of my-channel channel.
  • (packages . list) Build only the specified packages in list. For instance, (packages "strace" "perf") will only build the packages strace and perf.
  • (manifests . list) Build only the packages that are part of the manifests list. For instance, (manifests "etc/manifest") will only build the packages that are part of the etc/manifest file. This file must be provided by exactly one of the channels defined below.
channels (default: (list %default-guix-channel))

The channels to be fetched by Cuirass (see Channels in Guix).

build-outputs (default: ())

The build artifacts that must be saved and proposed to download in the web interface as a list of build-outputs records.

Data Type: build-output

Save the build outputs of the build jobs which names match the job regexp.


The build output type as a string. It is only used to describe the build output in the web interface.

output (default: ("out"))

The job output if it has multiple outputs (see Packages with Multiple Outputs in Guix).


The build output path within the job, as a string.

For instance, let’s consider the binary-tarball.x86_64-linux job which produces the following output: /gnu/store/xxx-guix-binary.tar.xz.

The build output definition below will save the root element ("") of the "out" output of the "binary-tarball.x86_64-linux" job—i.e., the "xxx-guix-binary.tar.xz" file.

 (job "binary-tarball*")
 (type "archive")
 (output "out")
 (path ""))
notifications (default: ())

The list of build notifications that must be sent. For instance:

(list (email
       (from "")
       (to "")
       (server "sendmail:///etc/")))

will send build notifications emails from to, using "sendmail:///etc/" mailer.

The different notification types are described in the Notifications section.

period (default: 0)

When period is strictly superior to zero new evaluations will only be triggered if the latest evaluation occured more than period seconds ago. Otherwise, the specification will be evaluated for each new commit in the declared channels.

priority (default: 9)

The specification priority relatively to the other specifications, as an integer ranging from 0 to 9 where 0 is the higher priority and 9 the lowest.

systems (default: (list (%current-system)))

Build every job for each system in this list. By default only the current system is selected.

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