2
0
Fork 0
mirror of git://git.savannah.gnu.org/guix/guix-cuirass.git synced 2023-12-14 06:03:04 +01:00
Cuirass continuous integration tool https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git
Go to file
Mathieu Othacehe 14e1335732
logging: Remove build warnings.
* src/cuirass/logging.scm (log-message): Turn into a procedure.
2021-03-10 08:33:16 +01:00
bin evaluation: Add doc strings. 2021-03-05 13:13:24 +01:00
build-aux Switch to PostegreSQL. 2021-01-11 12:28:13 +01:00
doc Update the Web API documentation. 2021-03-09 17:02:04 +01:00
examples Update the README. 2021-03-09 18:14:46 +01:00
src logging: Remove build warnings. 2021-03-10 08:33:16 +01:00
tests Use EphemeralPG for the tests. 2021-03-10 07:46:17 +01:00
.dir-locals.el Add with-transaction. 2021-03-03 08:39:02 +01:00
.gitignore Add notifications support. 2021-02-21 09:55:41 +01:00
bootstrap build: Add 'bootstrap' script. 2016-08-02 19:04:53 +02:00
configure.ac Switch to PostegreSQL. 2021-01-11 12:28:13 +01:00
COPYING Initial commit. 2016-05-29 19:53:17 +02:00
Makefile.am Rewrite evaluation. 2021-03-05 09:08:15 +01:00
README Update README. 2021-03-10 07:48:24 +01:00
TODO.org Add TODO.org. 2021-01-21 13:04:19 +01:00

-*- 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:

#+BEGIN_EXAMPLE
   $ guix environment cuirass
#+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
Cuirass, you can proceed with the usual:

#+BEGIN_EXAMPLE
   $ ./bootstrap && ./configure && make
#+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.

By default, this command:

#+BEGIN_EXAMPLE
  ./pre-inst-env cuirass
#+END_EXAMPLE

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

#+BEGIN_EXAMPLE
  ./pre-inst-env cuirass --database="dbname=cuirass host=/var/run/postgresql"
#+END_EXAMPLE

To use a TCP connection, one can use:

#+BEGIN_EXAMPLE
  ./pre-inst-env cuirass --database="host=127.0.0.1"
#+END_EXAMPLE

* 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:

#+BEGIN_EXAMPLE
make check
#+END_EXAMPLE

* Example

A quick way to manually test Cuirass is to execute:

#+BEGIN_EXAMPLE
  ./pre-inst-env cuirass --specifications=examples/hello.scm
#+END_EXAMPLE

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:

#+BEGIN_EXAMPLE
  ./pre-inst-env cuirass
#+END_EXAMPLE

To start the web interface run:

#+BEGIN_EXAMPLE
  ./pre-inst-env cuirass --web
#+END_EXAMPLE

* Contributing

See the manual for useful hacking informations, by running

#+BEGIN_EXAMPLE
  info -f doc/cuirass.info "Contributing"
#+END_EXAMPLE