Commit Graph

54 Commits

Author SHA1 Message Date
Christopher Baines 12def48b3b Support publishing build events
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.
2020-01-16 08:32:52 +00:00
Clément Lassieur 4e661552c3
database: Add builds only if one of their outputs is new.
* Makefile.am (dist_sql_DATA): Add 'src/sql/upgrade-4.sql'.
* src/cuirass/database.scm (db-add-output): New procedure.
(db-add-build): Call DB-ADD-OUTPUT, rollback the transaction and return #f if
DB-ADD-OUTPUT returned an empty list.
* src/schema.sql (Outputs): Set 'path' as primary key, instead of 'derivation,
name'.
* src/sql/upgrade-4.sql: New file with SQL queries to upgrade the database.
* tests/database.scm (make-dummy-build): Use the #:OUTPUTS key.  Get default
OUTPUTS to depend on DRV.
("db-add-build-with-fixed-output"): New test.
2018-09-29 22:29:06 +02:00
Clément Lassieur 8d40c49170
database: Add a Checkouts table.
It is used to know when a new evaluation must be triggered and to display
input changes.

* Makefile.am (dist_sql_DATA): Add 'src/sql/upgrade-3.sql'.
* bin/cuirass.in (main): Call DB-SET-EVALUATION-DONE at startup to clear
'in-progress' evaluations.
* bin/evaluate.in (input-checkout, format-checkouts): Rename '#:name' to
'#:input'.
* doc/cuirass.texi (Stamps): Remove section.
(Checkouts): New section.
* src/cuirass/base.scm (fetch-input, fetch-inputs, compile-checkouts): Rename
'#:name' to '#:input'.
(evaluate): Remove the COMMITS argument.  Add an EVAL-ID argument.  Don't call
DB-ADD-EVALUATION because it was called sooner.  Remove the EVAL-ID argument
to AUGMENT-JOB because it's a closure.
(build-packages): Add an EVAL-ID argument.  Call DB-SET-EVALUATION-DONE once
all the derivations are registered.
(process-specs): Replace the stamping mechanism by the primary key constraint
of the Checkouts table: call "evaluate" only when DB-ADD-EVALUATION is true,
which means that at least one checkout was added.  Change the EVALUATE and
BUILD-PACKAGES arguments accordingly.
* src/cuirass/database.scm (db-add-stamp, db-get-stamp): Remove procedures.
(db-set-evaluations-done, db-set-evaluation-done): New exported procedure.
(db-add-checkout): New procedure that returns #f if a checkout with the same
revision already exists.
(db-add-evaluation): Replace the EVAL argument with a SPEC-NAME and a
CHECKOUTS arguments.  Insert the evaluation only if at least one checkout was
inserted.  Return #f otherwise.
(db-get-checkouts): New procedure.
(db-get-evaluations, db-get-evaluations-build-summary): Handle the
'in_progress' column, remove the 'commits' column.  Return the result of
DB-GET-CHECKOUTS as part of the evaluation.
* src/cuirass/templates.scm (input-changes, evaluation-badges): New
procedures.
(evaluation-info-table): Rename "Commits" to "Input changes".  Use
INPUT-CHANGES to display the input changes that triggered the evaluation.  Use
EVALUATION-BADGES to display a message indicating that the evaluation is in
progress.
* src/schema.sql (Stamps): Remove table.
(Checkouts): New table.
(Evaluations): Remove the 'commits' column.  Add an 'in_progress' column.
* src/sql/upgrade-3.sql: New file with SQL queries to upgrade the database.
* tests/database.scm (make-dummy-eval): Remove procedure.
(make-dummy-checkouts): New procedure.
("sqlite-exec"): Remove the 'commits' column.  Add the 'in_progress' column.
("db-update-build-status!", "db-get-builds", "db-get-pending-derivations"):
Update the arguments of DB-ADD-EVALUATION accordingly.
* tests/http.scm (hash-table=?): Add support for lists of hash tables.
(evaluations-query-result): Replace '#:commits' with '#:checkouts'.  Return a
list instead of returning one element, for symmetry.
("fill-db"): Add a new input so that the second checkout can refer to it.
Replace EVALUATION1 and EVALUATION2 with CHECKOUTS1 and CHECKOUTS2.  Update
the arguments of DB-ADD-EVALUATION accordingly.
("/api/queue?nr=100"): Take the CAR of the EVALUATIONS-QUERY-RESULT list to
make it symmetrical with the other argument of HASH-TABLE=?.
2018-08-27 15:38:44 +02:00
Clément Lassieur 4db99f647b
database: Merge Derivations into Builds table.
Fixes <https://bugs.gnu.org/32190>.

* Makefile.am (dist_sql_DATA): Add 'src/sql/upgrade-2.sql'.
* doc/cuirass.texi (Derivations): Remove section.
(Builds): Update accordingly.  Add columns from the Derivations table.
(Outputs): Replace 'id' with 'derivation'.
* src/cuirass/base.scm (evaluate): Don't add jobs to the Derivations table.
(build-packages): Add columns that were in the Derivations table before.  Only
build the derivations that were successfully registered, that is, those that
didn't exist in the Builds table.  Give a derivation instead of a build id to
DB-GET-BUILD.  Compute the number of failed jobs based on the derivations that
were added to the table, instead of the jobs.
* src/cuirass/database.scm (db-add-derivation, db-get-derivation): Remove
exported procedures.
(db-add-build): Catch SQLITE_CONSTRAINT_PRIMARYKEY error, which means that two
jobs produced the same derivation, and return #f in that case.  Add columns
that were in the Derivations table before.  Use 'derivation' as primary key
for the Outputs table.
(db-get-outputs): Use 'derivation' as identifier, instead of 'build-id'.
(filters->order): Replace 'id' with 'rowid'.
(db-get-builds): Add a 'derivation' filter.  Replace 'id' with 'rowid'.
Remove the 'INNER JOIN Derivations'.  Replace Derivations with Builds.  Return
'derivation' in first position to make it clear that it's the primary key.
Pass DERIVATION instead of ID to DB-GET-OUTPUTS.
(db-get-build): Allow to take a derivation as argument.  Use NUMBER? to
differentiate between derivations and ids.
(db-get-pending-derivations): Remove the 'SELECT DISTINCT' clause now that
derivations are unique.  Remove the 'INNER JOIN Builds'.
(db-get-evaluations-build-summary, db-get-builds-min, db-get-builds-max):
Replace 'id' with 'rowid'.
* src/schema.sql (Derivations): Remove table.
(Outputs): Replace Builds.id with Builds.derivation.
(Builds): Use 'derivation' as primary key.  Remove the 'id' column.  Add
'job_name', 'system', 'nix_name' columns that were in the Derivations table
before.
(Builds_Derivations_index): Rename to Builds_index.  Update accordingly.
(Derivations_index): Remove index.
* src/sql/upgrade-2.sql: New file with SQL queries to upgrade the database.
* tests/database.scm (make-dummy-job, make-dummy-derivation): Remove
procedures.
(make-dummy-build): Add columns that were in MAKE-DUMMY-DERIVATION.  Get the
DRV parameter to be mandatory because it's a primary key.
(%id): Remove parameter.
("db-add-derivation", "db-get-derivation"): Remove tests.
("db-add-build"): Expect #f, because it adds twice the same derivation.  Pass
the derivation argument to MAKE-DUMMY-BUILD.
("db-update-build-status!"): Rename 'id' to 'derivation'.  Pass the derivation
argument to MAKE-DUMMY-BUILD.  Remove the DB-ADD-DERIVATION call.
("db-get-builds", "db-get-pending-derivations"): Pass the derivation argument
to MAKE-DUMMY-BUILD.  Remove the DB-ADD-DERIVATION calls.
* tests/http.scm ("fill-db"): Remove DERIVATION1 and DERIVATION2, and put
their content in BUILD1 and BUILD2.  Remove the DB-ADD-DERIVATION calls.
2018-08-16 19:19:23 +02:00
TSholokhova 675cd04a85
Add a web interface.
* Makefile.am (dist_sql_DATA): Add static files.
* src/cuirass/database.scm (assqx-ref): Export it.
(db-get-builds): Add 'evaluation' filter and filters for pagination.
(db-get-evaluations-build-summary, db-get-evaluations-id-min,
db-get-evaluations-id-max, db-get-builds-min, db-get-builds-max): New exported
procedures.
* src/cuirass/http.scm (%static-directory): New parameter.
(%page-size, %file-mime-types, %file-white-list): New variables.
(handle-build-request, handle-builds-request): Move the WITH-CRITICAL-SECTION
call out.
(url-handler): Add RESPOND-HTML, RESPOND-STATIC-FILE and RESPOND-NOT-FOUND
procedures.  Call WITH-CRITICAL-SECTION sooner for the '/build',
'/api/latestbuilds' and '/api/queue' routes.  Add '/', '/jobset/<name>',
'/eval/<id>', '/static/<path>' routes.  Use RESPOND-NOT-FOUND when the route
isn't found.
* src/cuirass/templates.scm: New file.
(html-page, specifications-table, evaluation-info-table,
build-eval-table): New exported procedures.
(pagination): New procedure.

Signed-off-by: Clément Lassieur <clement@lassieur.org>
2018-07-29 23:47:00 +02:00
Clément Lassieur 7b2f9e0de1
Add support for multiple inputs.
* Makefile.am (dist_sql_DATA): Add src/sql/upgrade-1.sql.
* bin/cuirass.in (show-help, %options, main): Remove the LOAD-PATH option that
was used afterwards as %GUIX-PACKAGE-PATH.
* bin/evaluate.in (absolutize, input-checkout, spec-source, spec-load-path,
spec-package-path, format-checkouts): New procedures.
(%not-colon): Remove variable.
(main): Take the load path, package path and PROC from the checkouts that
result from the inputs.  Format the checkouts before sending them to the
procedure.  Remove the LOAD-PATH argument.
* doc/cuirass.texi (Overview, Database schema): Document the changes.
* examples/{guix-jobs.scm, hello-git.scm, hello-singleton.scm,
hello-subset.scm, random.scm}: Adapt to the new specification format.
* examples/guix-track-git.scm (package->spec): Rename to PACKAGE->INPUT.
(package->git-tracked): Replace FETCH-REPOSITORY with FETCH-INPUT and handle
the new format of its return value.
* examples/random-jobs.scm (make-random-jobs): Rename RANDOM to CHECKOUT.
Rename the checkout from 'random (which is a specification) to 'cuirass (which
is a checkout resulting from an input).
* src/cuirass/base.scm (fetch-repository): Rename to fetch-input.  Rename SPEC
to INPUT.  Return a checkout object instead of returning two values.
(evaluate): Take a list of CHECKOUTS and COMMITS as arguments, instead of
SOURCE.  Remove TOKENIZE and LOAD-PATH.  Pass the CHECKOUTS instead of the
SOURCE to "evaluate".  Remove %GUIX-PACKAGE-PATH.  Build the EVAL object
instead of getting it from "evaluate".
(compile?, fetch-inputs, compile-checkouts): New procedures.
(process-specs): Fetch all inputs instead of only fetching one repository.
The result of that fetching operation is a list of CHECKOUTS whose COMMITS are
used as a STAMP.
(%guix-package-path, set-guix-package-path): Remove them.
* src/cuirass/database.scm (db-add-input, db-get-inputs): New procedures.
(db-add-specification, db-get-specifications): Adapt to the new specification
format.  Add/get all inputs as well.
(db-add-evaluation): Rename REVISION to COMMITS.  Store COMMITS as space
separated commit hashes.
(db-get-builds): Rename REPO_NAME to NAME.
(db-get-stamp): Rename COMMIT to STAMP.  Return #f when there is no STAMP.
(db-add-stamp): Rename COMMIT to STAMP.  Deal with DB-GET-STAMP's new return
value.
(db-get-evaluations): Rename REVISION to COMMITS.  Tokenize COMMITS.
* src/cuirass/utils.scm (%non-blocking): Export it.
* src/schema.sql (Inputs): New table that refers to the Specifications table.
(Specifications): Move input related fields to the Inputs table.  Rename
REPO_NAME to NAME.  Rename ARGUMENTS to PROC_ARGS.  Rename FILE to PROC_FILE.
Add LOAD_PATH_INPUTS, PACKAGE_PATH_INPUTS and PROC_INPUT fields that refer to
the Inputs table.
(Stamps): Rename REPO_NAME to NAME.
(Evaluations): Rename REPO_NAME to NAME.  Rename REVISION to COMMITS.
(Specifications_index): Replace with Inputs_index.
* src/sql/upgrade-1.sql: New file.
* tests/database.scm (example-spec, make-dummy-eval, sqlite-exec): Adapt to
the new specifications format.  Rename REVISION to COMMITS.
* tests/http.scm (evaluations-query-result, fill-db): Idem.
2018-07-16 21:33:14 +02:00
Ludovic Courtès 4ab2f2c3f0 build: Clean cuirass.go.
* Makefile.am (CLEANFILES): Add $(nodist_guilesite_DATA).
2018-02-15 10:27:12 +01:00
Ludovic Courtès a7693f4974 build: Install (web server fiberized) in its right place.
Previously it would be installed under cuirass/.

* Makefile.am (webmoduledir, webobjectdir): New variables.
(dist_pkgmodule_DATA): Remove src/web/server/fiberized.scm.
(dist_webmodule_DATA, nodist_webobject_DATA): New variables.
(CLEANFILES): Add $(nodist_webobject_DATA).
2018-02-15 10:25:19 +01:00
Ludovic Courtès eb9521d1b4 examples: Add 'random-jobs'.
* examples/random-jobs.scm, examples/random.scm: New files.
* Makefile.am (nobase_dist_pkgdata_DATA): Add them.
2018-01-29 22:42:12 +01:00
Ludovic Courtès 77769c29e7 http: Use our own 'fiberized' web server backend.
* src/web/server/fiberized.scm: New file.
* Makefile.am (dist_pkgmodule_DATA): Add it.
* src/cuirass/http.scm (run-cuirass-server): Use it.
2018-01-25 11:54:40 +01:00
Ludovic Courtès 70f21349bd Add (cuirass logging) module.
* src/cuirass/logging.scm: New file.
* Makefile.am (dist_pkgmodule_DATA): Add it.
* src/cuirass/base.scm (handle-build-event): Use 'log-message' instead
of 'log'.
2018-01-22 13:29:55 +01:00
Ludovic Courtès 6c163e4916 build: Update 'test-driver.scm' from Guix.
* build-aux/test-driver.scm: Update from current Guix.
* Makefile.am (SCM_LOG_DRIVER): Add -L and -e flags.
2018-01-07 23:59:30 +01:00
Mathieu Othacehe 4666142ca5
repo: Remove dead code.
* Makefile.am (dist_pkgmodule_DATA): Remove repo.scm,
(TESTS): Remove repo.scm.
* build-aux/guix.scm (package)[disable-repo-tests]: Remove phase.
* src/cuirass/repo.scm: Remove.
* tests/repo.scm: Remove.
2017-07-06 09:20:52 +02:00
Ludovic Courtès 870e8d6ad3 build: Fix load-path/compile-path confusion.
This is a followup to b4400bc989.

* Makefile.am (nodist_pkgmodule_DATA): New variable.
(nodist_pkgobject_DATA): Remove config.scm.
(do_subst): Use $(guileobjectdir).
2017-05-10 16:58:50 +02:00
Ludovic Courtès b4400bc989 build: Install .go files to $(libdir)/guile.
* Makefile.am (guileobjectdir): New variable.
(nodist_guilesite_DATA): Rename to...
(nodist_guileobject_DATA): ... this.
(pkgobjectdir): New variable.
(nodist_pkgmodule_DATA): Rename to...
(nodist_pkgobject_DATA): ... this.
2017-05-10 16:42:05 +02:00
Ludovic Courtès ece0773ca8 build: Prefer building with Guile 2.2.
* Makefile.am (guilesitedir): Append @GUILE_EFFECTIVE_VERSION@.
* configure.ac: Use 'GUILE_PKG', and pass "2.2" first.
2017-05-10 16:32:26 +02:00
Mathieu Lirzin 3adf32e742
build: Don't generate ".version" since it has no use.
* Makefile.am (.version): Remove target.
(EXTRA_DIST): Adapt.
(BUILT_SOURCES): Likewise.
* build-aux/guix.scm (git-version-gen): Call 'git-version-gen' with
'.tarball-version'.
* .gitignore: Update.
2017-01-23 02:41:53 +01:00
Mathieu Lirzin 8988070725
maint: Fix mistake in copying permission statement.
This was mistakenly added in commit 05e5495e8f.

* Makefile.am: Declare GPLv3+ instead of GPLv2+.
* configure.ac: Likewise.
2017-01-09 00:41:13 +01:00
Mathieu Lirzin b29820b8bb
build: Reformat assignments.
* Makefile.am (guilesitedir, pkgmoduledir, BUILT_SOURCES): Add whitespaces
around '='.
2017-01-08 18:06:02 +01:00
Mathieu Lirzin 4ac708b0f6
build: Do not require "build-aux/guix.scm".
When building Cuirass with 'guix build -f build-aux/guix.scm' we don't want to
add "build-aux/guix.scm" in the repository snapshot since it is considered as
metadata.  As a consequence we can't make 'autoconf' require it.

* configure.ac (AC_REQUIRE_AUX_FILE): Remove "build-aux/guix.scm".
* Makefile.am (EXTRA_DIST): Only distribute it.
2016-12-29 12:00:18 +01:00
Mathieu Lirzin b32791d4bd
build: Fix typo "the" => "they".
* Makefile.am <Generated files>: Fix typo "the" => "they".
2016-12-28 19:12:29 +01:00
Mathieu Lirzin c26ffda7d6
build: Use portable substitution references.
* Makefile.am (nodist_guilesite_DATA, nodist_pkgmodule_DATA, CLEANFILES): Use
portable substitution references.
2016-12-28 19:12:29 +01:00
Mathieu Lirzin 17dbfe679d
maint: Generate version number.
* build-aux/git-version-gen: New script.
* configure.ac (AC_INIT): Use it.
(AC_REQUIRE_AUX_FILE): Distribute it.
* Makefile.am (.version): New target.
(BUILT_SOURCES, EXTRA_DIST): Add it.
(dist-hook): Generate ".tarball-version".
* .gitignore: Update.
2016-12-28 18:51:39 +01:00
Mathieu Lirzin 57e10c6056
build: Set Guile load paths in 'pre-inst-env'.
This reverts most of 4f0d665746.  The load paths
are still hard coded after installation, however 'pre-inst-env' wrapper is
used for defining them in the local build environment.  This is more
convenient for running the tests manually or launching a Guile REPL with all
the Cuirass modules accessible.

* build-aux/pre-inst-env.in (GUILE_LOAD_PATH, GUILE_LOAD_COMPILED_PATH): New
variables.
* bin/cuirass.in: Comment Guile load paths.
* Makefile.am (local_load_path, local_load_compiled_path): Delete.
(AM_TESTS_ENVIRONMENT): Don't set Guile load paths.
(do_subst): Use install directories for Guile load paths.
(install-exec-hook): Uncomment 'cuirass' hard coded load paths.
2016-12-28 18:19:03 +01:00
Mathieu Lirzin 16aec469d4
repo: Add <repo> record datatype.
* src/cuirass/utils.scm (call-with-temporary-directory): New procedure.
* src/cuirass/repo.scm: Use it.  New file.
* tests/repo.scm: New tests.
* Makefile.am (dist_pkgmodule_DATA, TESTS): Add them.
2016-12-28 18:18:37 +01:00
Mathieu Lirzin 041b56c480
build: Install the examples.
* Makefile.am (EXTRA_DIST): Move examples to ...
(nobase_dist_pkgdata_DATA): ... here.  New variable.
2016-12-16 13:39:51 +01:00
Mathieu Lirzin e9e1ce8e14
maint: Move examples from 'tests' to 'examples' directory.
* examples/gnu-system.scm: Moved from 'tests' directory.
* examples/guix-jobs.scm: Likewise.
* examples/guix-track-git.scm: Likewise.
* examples/hello-git.scm: Likewise.
* examples/hello-singleton.scm: Likewise.
* examples/hello-subset.scm: Likewise.
* Makefile.am (EXTRA_DIST): Adapt.
* README <Example>: Likewise.
2016-12-16 13:20:49 +01:00
Mathieu Lirzin cbdb59af8e
doc: Add Cuirass manual.
* doc/cuirass.texi: New file.
* doc/fdl-1.3.texi: Likewise.
* Makefile.am (info_TEXINFOS, doc_cuirass_TEXINFOS): New variables.
* dir-locals.el: Use the American dictionary for Texinfo mode.
* .gitignore: Update.
2016-12-04 22:31:03 +01:00
Mathieu Lirzin 7248c0038f
build: Unquote local load paths.
* Makefile.am (local_load_path, local_load_compiled_path): Remove quotes that
were expanded in the generated files.
2016-11-29 18:49:43 +01:00
Mathieu Lirzin 81ff83354e
build: Remove duplicate sed expression.
* Makefile.am (do_subst): Remove duplicate line.
2016-11-17 01:19:05 +01:00
Mathieu Lirzin a948f556eb
build: Use BUILT_SOURCES to avoid recompilation.
Before that, modifying 'src/cuirass/config.scm' was triggering the
recompilation of all modules which was unnecessary.

* Makefile.am (go_files, $(go_files)): Delete.
(BUILT_SOURCES): New variable.
2016-11-17 01:19:04 +01:00
Mathieu Lirzin 05e5495e8f
maint: Add copyright notices for the build system.
* configure.ac: Add copyright notice.
* Makefile.am: Likewise.
2016-11-12 17:58:17 +01:00
Mathieu Lirzin 4f0d665746
cuirass: Hard code Guile load paths.
* configure.ac (bin/cuirass, bin/evaluate): Let 'make' generate them.
* bin/cuirass.in: Hard code load paths to find Cuirass modules.
* Makefile.am (do_subst): Update substitution.
(bin/cuirass, bin/evaluate): New rules.
(EXTRA_DIST): Distribute 'bin/cuirass.in' and 'bin/evaluate.in'.
(MOSTLYCLEANFILES): Add '$(bin_SCRIPTS)'.
(install-exec-hook): New target.
(local_load_path, local_load_compiled_path): New variables.
(AM_TESTS_ENVIRONMENT): Set Guile load paths.
* build-aux/pre-inst-env.in: Don't modify Guile load paths.
2016-11-12 17:49:20 +01:00
Mathieu Lirzin 1e5012ca80
build: Let 'make' generate 'src/cuirass/config.scm'.
* Makefile.am (src/cuirass/config.scm, $(go_files)): New targets.
(do_subst, generate_file, go_files): New variables.
(EXTRA_DIST): Distribute 'src/cuirass/config.scm.in'.
(DISTCLEANFILES): Rename to ...
(MOSTLYCLEANFILES): ... this.
* configure.ac (AC_CONFIG_FILES): Remove 'src/cuirass/config.scm'.
(@expanded_datadir@, @expanded_localstatedir@): Delete.
(AC_PROG_MKDIR_P, AC_PROG_SED): Use them.
* src/cuirass/config.scm (%datadir): Set it to $(localstatedir).
(%localstatdir): Set it to $(datadir).
2016-11-12 17:07:57 +01:00
Mathieu Lirzin c9223b6d29
build: Add 'bootstrap' script.
* bootstrap: New file.
* Makefile.am (EXTRA_DIST): Add it.
2016-08-02 19:04:53 +02:00
Mathieu Lirzin a6849d4a45
Add (cuirass) module.
* src/cuirass.scm: New file.
* Makefile.am (guilesitedir, dist_guilesite_DATA)
(nodist_guilesite_DATA): New variables.
(pkgmoduledir): Refer to 'guilesitedir'.
(CLEANFILES): Add 'nodist_guilesite_DATA'.
* bin/cuirass.in: Use (cuirass) module.
* bin/evaluate.in: Likewise.
2016-08-02 18:17:20 +02:00
Mathieu Lirzin 651b8bbcf9
Add (cuirass http) module.
* src/cuirass/http.scm: New file.
* tests/http.scm: Likewise.
* Makefile.am (dist_pkgmodule_DATA, TESTS): Add them.
* configure.ac: Check for (json) module.
2016-07-31 01:07:00 +02:00
Mathieu Lirzin 5c0a2b5779
build: Fix variable reference in comment.
* Makefile.am (.scm.go): Replace $(cuirassmoduledir) by
$(pkgmoduledir).
2016-07-27 14:17:10 +02:00
Mathieu Lirzin f97b24c29e
tests: Add 'hello-singleton' specification example.
* tests/hello-singleton.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2016-07-27 14:16:57 +02:00
Mathieu Lirzin adc624c75a
build: Add 'sql-check' rule. 2016-07-25 02:12:39 +02:00
Mathieu Lirzin fb986fa8fe
build: Define 'pkgmoduledir' in Makefile.am. 2016-07-25 02:12:39 +02:00
Mathieu Lirzin 46c9d432ea
database: Use an external SQL schema. 2016-07-25 02:12:39 +02:00
Mathieu Lirzin 89b1f89cfc
Move '%program-name' to (cuirass ui) module. 2016-07-25 02:12:37 +02:00
Mathieu Lirzin 0808ab3ecd Remove unnecessary (cuirass job) module. 2016-07-13 14:16:36 +02:00
Mathieu Lirzin 53c12be409 Evaluate derivations in a separate process.
This fixes a bug where different Guix branches gave the same
derivations.
2016-07-13 14:07:24 +02:00
Mathieu Lirzin 92f5d0dfe4 Add guix-jobs.scm specification file. 2016-07-04 17:01:58 +02:00
Mathieu Lirzin fe30eb7e82 Add 'basic.sh' test. 2016-07-03 16:50:27 +02:00
Mathieu Lirzin 88e72887a0 Add test for 'with-directory-excursion'. 2016-07-02 03:35:19 +02:00
Mathieu Lirzin 2bace10106 Add (cuirass utils) module.
Move 'with-directory-excursion' here.
2016-07-02 03:13:29 +02:00
Mathieu Lirzin b24541e604 Add (cuirass database) module. 2016-06-26 16:59:26 +02:00