Cuirass continuous integration tool https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git
Go to file
Christopher Baines 46f73b6b7c Support returning build information by output.
Being able to take a derivation and query the build information is useful, but
in cases where there are multiple derivations that produce the same outputs,
the probability of getting the data back from Cuirass is reduced.

This is because Cuirass might not have build the exact derivation you have,
but a different derivation that produces the same outputs (this can commonly
happen when a related fixed output derivation changes).

Cuirass doesn't store derivations if they produce the same outputs as a
derivation it already knows about, so it can't determine if this is the
case. Therefore, provide a way of querying build results by output, rather
than derivation.

The motivation behind this is to make it easier to import build information in
to the Guix Data Service.

* src/cuirass/database.scm (db-get-output): New procedure.
* src/cuirass/http.scm (respond-output-not-found): New procedure.
(request-path-components): Handle /output/… requests.
* doc/cuirass.texi (Build information): Mention that you can get build
information by output.
2020-01-16 08:33:03 +00:00
bin Support publishing build events 2020-01-16 08:32:52 +00:00
build-aux base: Write to 'evaluate' output to /var/log/cuirass. 2019-10-23 14:53:50 +02:00
doc Support returning build information by output. 2020-01-16 08:33:03 +00:00
examples examples: random: Fail evaluation once in a while. 2018-11-07 15:28:05 +01:00
src Support returning build information by output. 2020-01-16 08:33:03 +00:00
tests tests: Remove 405 test. 2019-10-30 13:29:37 +01:00
.dir-locals.el database: Serialize all database accesses in a thread. 2018-08-16 19:19:23 +02:00
.gitignore Support publishing build events 2020-01-16 08:32:52 +00:00
COPYING Initial commit. 2016-05-29 19:53:17 +02:00
Makefile.am Support publishing build events 2020-01-16 08:32:52 +00:00
README doc: Guile 2.2 is needed. 2019-08-17 18:59:28 +02:00
bootstrap build: Add 'bootstrap' script. 2016-08-02 19:04:53 +02:00
configure.ac Introduce concurrency with Fibers. 2018-01-22 23:39:51 +01:00

README

Cuirass is a continuous integration tool using GNU Guix.  It is intended as a
replacement for Hydra.

Requirements
============

Cuirass currently depends on the following packages:

  - GNU Guile 2.2.x or later
  - GNU Guix (and all its development dependencies)
  - GNU Make
  - Guile-JSON 3.x
  - Guile-SQLite3
  - Guile-Git
  - Fibers

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

   $ guix environment -l build-aux/guix.scm

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:

   $ ./configure && sudo make install

An alternative way is to directly install Cuirass in your Guix profile, using:

   $ guix package -f build-aux/guix.scm

To build it, but not install it, run:

   $ guix build -f build-aux/guix.scm

Example
=======

A quick way to manually test Cuirass is to execute:

  ./pre-inst-env cuirass --specifications=examples/hello-singleton.scm --database=test.db

This will read the file "examples/hello-singleton.scm" which contains a list of
specifications and add them to the database "test.db" which is created if it
doesn't already exist.

'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 --database=test.db

To start the web interface run:

  ./pre-inst-env cuirass --web

Contributing
============

See the manual for useful hacking informations, by running

  info -f doc/cuirass.info "Contributing"