Cuirass continuous integration tool
https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git
12def48b3b
Add a table to store events, which have a type and a JSON blob. These can be used to record changes, this commit inserts events when new builds are created, and when the status of builds change. The EventsOutbox table is then used to track when events have been sent out. This is done through the new cuirass-send-events script. * Makefile.am (bin_SCRIPTS): Add bin/cuirass-send-events. .gitignore: Add bin/cuirass-send-events. (dist_pkgmodule_DATA): Add src/cuirass/send-events.scm. (dist_sql_DATA): Add src/sql/upgrade-5.sql. (EXTRA_DIST): bin/cuirass-send-events.in. (bin/cuirass-send-events): New rule. * bin/cuirass-send-events.in: New file. * src/cuirass/send-events.scm: New file. * src/sql/upgrade-5.sql: New file. * src/cuirass/database.scm (changes-count): New procedure. (db-update-build-status!): Call db-add-event after updating the build status. (db-add-event): New procedure. (db-add-build): Insert an event when a new build is inserted. (db-delete-events-with-ids-<=-to): New procedure. * src/schema.sql (Events): New table. |
||
---|---|---|
bin | ||
build-aux | ||
doc | ||
examples | ||
src | ||
tests | ||
.dir-locals.el | ||
.gitignore | ||
COPYING | ||
Makefile.am | ||
README | ||
bootstrap | ||
configure.ac |
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"