Build automation server using GNU Guix package manager.

Mathieu Othacehe c52b4c5354 css: Remove horizontal padding. 5 months ago
bin 43d29317d9 Use a single Cuirass binary. 6 months ago
build-aux cbc462679d Switch to PostegreSQL. 8 months ago
doc 31b940ee63 Update documentation. 6 months ago
examples dded4f56d5 Update the README. 6 months ago
src c52b4c5354 css: Remove horizontal padding. 5 months ago
tests f5a2eeae18 Fix single checkout update. 6 months ago
.dir-locals.el f5287dc11e Add with-transaction. 6 months ago
.gitignore b645f4eb0c Add remote building tests. 6 months ago
COPYING 9d5fda76bb Initial commit. 5 years ago 1ed9360108 Add table order buttons. 6 months ago
NEWS e844ca92e8 Add a NEWS file. 6 months ago
README e4a218afb2 Update documentation. 6 months ago
TODO 0497e0d6c4 Update TODO. 6 months ago
bootstrap c9223b6d29 build: Add 'bootstrap' script. 5 years ago 2efa062a4a Update copyrights. 6 months ago


-*- mode: org -*-

Cuirass is a continuous integration tool using GNU Guix.

* Requirements

Cuirass currently depends on the following packages:

- GNU Guile 3.0.x or 2.2.x
- GNU Guix (and all its development dependencies)
- GNU Make
- Guile-JSON 3.x
- Guile-Avahi
- Guile-Squee
- Guile-Git
- Guile-zlib
- Guile-Mastodon
- Guile-Simple-ZMQ
- Ephemeral PostgreSQL (for the tests)
- Mailutils
- Fibers

A convenient way to install those dependencies is to install Guix and execute
the following command:

guix environment cuirass

This will build and enter an environment which provides all the necessary

* Build Instructions

When all the dependencies are available on you system, in order to build
Cuirass, you can proceed with the usual:

./bootstrap && ./configure && make

* Database connection

Cuirass uses PostgreSQL to store information about jobs, past build results
and to coordinate the execution of jobs. The database connection string must
be passed to Cuirass using the =database= argument, under the keyword/value
format described [[][here]]. The PostgreSQL database must be created beforehand.

By default, this command:

./pre-inst-env cuirass register

will connect using the Unix socket at =/var/run/postgresql= to the =cuirass=
database and is equivalent to:

./pre-inst-env cuirass register --database="dbname=cuirass host=/var/run/postgresql"

To use a TCP connection, one can use:

./pre-inst-env cuirass register --database="host="

* Run tests

Cuirass tests also require an access to a PostgreSQL database, provided by the
Ephemeral PostgreSQL package. The =pg_tmp= script needs to be part of the
path before running the usual:

make check

* Example

A quick way to manually test Cuirass is to execute:

./pre-inst-env cuirass register --specifications=examples/hello.scm

This will read the file "examples/hello.scm" which contains a list of
specifications and add them to the =cuirass= database. It will then build the
=hello= package on top of the default Guix channel.

Cuirass then loops evaluating/building the specs. The database keeps track
of the specifications in order to allow users to accumulate specifications.
To resume the evaluation/build process you can execute the same command
without the '--specifications' option:

./pre-inst-env cuirass register

To start the web interface run:

./pre-inst-env cuirass web

* Contributing

See the manual for useful hacking informations, by running

info -f doc/ "Contributing"