Cuirass continuous integration tool https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git
Go to file
Mathieu Othacehe f44618fc79
Add support for build products downloading.
* src/sql/upgrade-7.sql: New file.
* Makefile.am: Add it.
* src/cuirass/base.scm (create-build-outputs): New procedure,
(build-packages): call it,
(process-spec): add the new spec argument and pass it to create-build-outputs.
* src/cuirass/database.scm (db-add-build-product, db-get-build-product-path,
db-get-build-products): New exported procedures.
* src/cuirass/http.scm (respond-static-file): Move file sending to ...
(respond-file): ... this new procedure,
(url-handler): add a new "download/<id>" route, serving the requested file
with the new respond-file procedure. Also gather build products and pass them
to "build-details" for "build/<id>/details" route.
* src/cuirass/templates.scm (build-details): Honor the new "products" argument
to display all the build products associated to the given build.
* src/schema.sql (BuildProducts): New table,
(Specifications)[build_outputs]: new field.
* tests/database.scm: Add empty build-outputs spec.
* tests/http.scm: Ditto.
* examples/guix-jobs.scm: Ditto.
* examples/hello-git.scm: Ditto.
* examples/hello-singleton.scm: Ditto.
* examples/hello-subset.scm: Ditto.
* examples/random.scm: Ditto.
* doc/cuirass.texi (overview): Document it.
2020-06-10 16:42:21 +02:00
bin cuirass: Perform some database "optimization" at startup. 2020-05-25 11:08:20 +01:00
build-aux build-aux: Update for Guile 3. 2020-05-25 11:05:27 +01:00
doc Add support for build products downloading. 2020-06-10 16:42:21 +02:00
examples Add support for build products downloading. 2020-06-10 16:42:21 +02:00
src Add support for build products downloading. 2020-06-10 16:42:21 +02:00
tests Add support for build products downloading. 2020-06-10 16:42:21 +02: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 Add support for build products downloading. 2020-06-10 16:42:21 +02:00
README build: Allow builds with Guile 3.0. 2020-01-18 15:18:00 +01:00
bootstrap build: Add 'bootstrap' script. 2016-08-02 19:04:53 +02:00
configure.ac build: Allow builds with Guile 3.0. 2020-01-18 15:18:00 +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 3.0.x or 2.2.x
  - 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"