mirror of
git://git.savannah.gnu.org/guix/guix-cuirass.git
synced 2023-12-14 06:03:04 +01:00
111 lines
3.1 KiB
Org Mode
111 lines
3.1 KiB
Org Mode
-*- 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-Squee
|
|
- Guile-Git
|
|
- Guile-zlib
|
|
- Fibers
|
|
|
|
A convenient way to install those dependencies is to install Guix and execute
|
|
the following command:
|
|
|
|
#+BEGIN_EXAMPLE
|
|
$ guix environment -l build-aux/guix.scm
|
|
#+END_EXAMPLE
|
|
|
|
This will build and enter an environment which provides all the necessary
|
|
dependencies.
|
|
|
|
* Build Instructions
|
|
|
|
When all the dependencies are available on you system, in order to build and
|
|
install Cuirass, you can proceed with the usual:
|
|
|
|
#+BEGIN_EXAMPLE
|
|
$ ./configure && sudo make install
|
|
#+END_EXAMPLE
|
|
|
|
An alternative way is to directly install Cuirass in your Guix profile, using:
|
|
|
|
#+BEGIN_EXAMPLE
|
|
$ guix package -f build-aux/guix.scm
|
|
#+END_EXAMPLE
|
|
|
|
To build it, but not install it, run:
|
|
|
|
#+BEGIN_EXAMPLE
|
|
$ guix build -f build-aux/guix.scm
|
|
#+END_EXAMPLE
|
|
|
|
* 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 [[https://www.postgresql.org/docs/10/libpq-connect.html#LIBPQ-CONNSTRING][here]]. The PostgreSQL database must be created beforehand.
|
|
|
|
For instance, to connect using Unix sockets to the =cuirass= database:
|
|
|
|
#+BEGIN_EXAMPLE
|
|
./pre-inst-env cuirass --database="dbname=cuirass host=/var/run/postgresql"
|
|
#+END_EXAMPLE
|
|
|
|
or using a TCP connection:
|
|
|
|
#+BEGIN_EXAMPLE
|
|
./pre-inst-env cuirass --database="dbname=cuirass host=127.0.0.1"
|
|
#+END_EXAMPLE
|
|
|
|
* Run tests
|
|
|
|
Cuirass tests also require an access to a PostgreSQL database. This database
|
|
must be dedicated to testing as its content will be dropped. The database
|
|
name and host must be passed using =CUIRASS_DATABASE= and =CUIRASS_HOST=
|
|
environment variables respectively.
|
|
|
|
#+BEGIN_EXAMPLE
|
|
CUIRASS_DATABASE="test_tmp" CUIRASS_HOST="/var/run/postgresql" make check
|
|
#+END_EXAMPLE
|
|
|
|
* Example
|
|
|
|
A quick way to manually test Cuirass is to execute:
|
|
|
|
#+BEGIN_EXAMPLE
|
|
./pre-inst-env cuirass --specifications=examples/hello-singleton.scm --database="dbname=cuirass host=/var/run/postgresql"
|
|
#+END_EXAMPLE
|
|
|
|
This will read the file "examples/hello-singleton.scm" which contains a list
|
|
of specifications and add them to the =cuirass= database.
|
|
|
|
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:
|
|
|
|
#+BEGIN_EXAMPLE
|
|
./pre-inst-env cuirass --database="dbname=cuirass host=/var/run/postgresql"
|
|
#+END_EXAMPLE
|
|
|
|
To start the web interface run:
|
|
|
|
#+BEGIN_EXAMPLE
|
|
./pre-inst-env cuirass --database="dbname=cuirass host=/var/run/postgresql" --web
|
|
#+END_EXAMPLE
|
|
|
|
* Contributing
|
|
|
|
See the manual for useful hacking informations, by running
|
|
|
|
#+BEGIN_EXAMPLE
|
|
info -f doc/cuirass.info "Contributing"
|
|
#+END_EXAMPLE
|