2
0
Fork 0
mirror of git://git.savannah.gnu.org/guix/guix-cuirass.git synced 2023-12-14 06:03:04 +01:00
Commit graph

22 commits

Author SHA1 Message Date
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
Clément Lassieur be713f8a30
database: Call a specification 'jobset' instead of 'project'.
This removes the possibility to filter specifications by branch, because
branches were previously called 'jobset'.  But it doesn't matter because later
on, specifications will have as many branches as inputs.  And people should
filter by specification name instead.

* doc/cuirass.texi (Build Information, Latest builds): Remove 'jobset',
replace 'project' with 'jobset'.
* src/cuirass/http.scm (build->hydra-build): Idem.
* tests/database.scm (db-get-builds): Idem.
* tests/http.scm (build-query-result, /api/latestbuilds?nr=1&jobset=guix,
/api/latestbuilds?nr=1&jobset=gnu): Idem.
* src/cuirass/database.scm (db-format-build, db-get-builds): Don't associate
builds with branches (which were called 'jobset' afterwards).
(db-get-builds): Remove the #:project filter.
2018-07-14 21:35:14 +02:00
Ludovic Courtès 2ba45edf2f base: Pass the correct load path to the 'evaluate' command.
The previous load path was potentially incorrect since commit
2fe7ff87e2.

* src/cuirass/base.scm (evaluate)[tokenize, load-path]: New variables.
Assume #:load-path is colon-separated.  Pass LOAD-PATH as the second
argument to 'evaluate'.
* doc/cuirass.texi (Database): Adjust documentation.
2018-04-07 18:33:27 +02:00
Ludovic Courtès a3025cad92 cuirass: Add '--threads' and put an upper bound on the default.
* bin/cuirass.in (show-help, %options): Add "--threads".
(main): Honor it.  Pass #:parallelism to 'run-fibers'.
2018-02-05 23:01:24 +01:00
Leo Famulari 581b6e4fee
doc: Clarify the relationship of "repo_name" and "name".
* doc/cuirass.texi (Specifications): Mention "name".
2017-10-14 23:08:04 -04:00
Ricardo Wurmus 2f898fd8ba
doc: Fix typos.
* doc/cuirass.texi: Fix typographic errors and typos.
2017-10-04 11:41:07 +02:00
Jan Nieuwenhuizen 2a4d493e28
cuirass: Add --listen command line option.
* bin/cuirass.in (show-help): Add help for --listen option.
(%options): Add listen option.
(main): Pass host to run-cuirass-server.
* doc/cuirass.texi (Invocation): Add --listen option.
* src/cuirass/http.scm (run-cuirass-server): Add named #:host parameter.
2017-09-18 21:57:05 +02:00
Ludovic Courtès fc204ffbca doc: Mention the supported transports.
Suggested by Jan Nieuwenhuizen <janneke@gnu.org>.

* doc/cuirass.texi (Overview): Explain that "dumb HTTP" is not
supported.
2017-09-17 21:38:25 +02:00
Mathieu Othacehe 8a7483a3bb
cuirass: add Hydra compatible HTTP API.
* doc/cuirass.texi (Sections)[Web API]: New section describing the HTTP API.
* src/cuirass/http.scm (spec->json-string): Move it to utils.scm and rename it
  object->json-string.
(object->json-scm): Move it utils.scm.
(handle-*-request): New helpers procedures.
(request-parameters): New procedure to parse a request query.
(url-handler): Add new API's.
* src/cuirass/utils.scm (object->json-scm, object->json-string): Exported
procedures moved from http.scm.
* tests/http.scm: Add various tests on new HTTP API.
2017-09-08 21:15:32 +02:00
Mathieu Othacehe e550cb6a9a
cuirass: Store new information in database to prepare new HTTP API
integration.

* bin/evaluate.in (fill-job): New procedure.
(main): Use it to fill informations (nix-name, system) that will later be
added to database.
* doc/cuirass.texi (Database)[Derivation]: Add system and nix_name fields.
(Database)[Builds]: Add id, status, timestamp, starttime and stoptime
fields. Remove output field.
(Database)[Outputs]: New table describing the build outputs.
* src/cuirass/base.scm (build-packages): Add new fields to build object before
adding it to database.
* src/cuirass/database.scm (db-get-build, db-get-builds): New procedures to get
a build by id from database and a list of builds using filter parameters
respectively.
* src/schema.sql (Outputs) : New table.
(Derivations): Add system and nix_name columns.
(Builds): Remove output column and add id, status, timestamp, starttime and
stoptime columns.
2017-09-08 21:00:57 +02:00
Mathieu Othacehe 0d5635290b
doc: Update contribution email.
* doc/cuirass.texi (Contribution): guix-devel@gnu.org is preferred for
  contributions.
2017-07-31 19:33:43 +02:00
Ricardo Wurmus 03d2413300
doc: Do not use "path" when a file name is meant.
* doc/cuirass.texi (Database): Replace instances of "path" with more accurate
terms.
2017-05-05 21:16:52 +02:00
Ricardo Wurmus a733cd7a44
doc: Document database schema.
* doc/cuirass.texi: Add "Database" node.
2017-05-05 12:28:49 +02:00
Ricardo Wurmus 96fdf9d466
doc: Fix spelling.
* doc/cuirass.texi (Introduction): Fix typos and use American English
spelling.

Co-authored-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2017-05-05 12:26:55 +02:00
Mathieu Lirzin f695c79eb3
doc: Describe how to send patches.
* doc/cuirass.texi (Contributing): Describe how to send patches.
2017-01-29 18:05:58 +01:00
Mathieu Lirzin 6abee31bee
doc: Update email contact for contributors.
* doc/cuirass.texi (Contributing): Use "bug-cuirass@framalistes.org" email
address.
2017-01-23 02:41:50 +01:00
Mathieu Lirzin 8a782b3e84
cuirass: Add "--port" command line option.
* bin/cuirass.in (%options): Add "--port" and "-p" command line options.
(show-help): Adapt.
(main): Set default to 8080.  Call 'run-cuirass-server' with this.
* src/cuirass/http.scm (run-cuirass-server): Display the port number.
* doc/cuirass.texi (Invocation): Document new option.
2016-12-28 18:49:21 +01:00
Mathieu Lirzin a6807cb29c
doc: Add 'Overview' Chapter.
* doc/cuirass.texi (Overview): New chapter.
2016-12-16 14:07:31 +01:00
Mathieu Lirzin 97b707d32a
doc: Include 'Continuous Integration' in the introduction.
* doc/cuirass.texi (Continuous Integration): Make it a section of
the 'Introduction' chapter.
2016-12-16 13:49:16 +01:00
Mathieu Lirzin 5dc1bf40e9
doc: Write Introduction.
* doc/cuirass.texi (Introduction): Write it.
2016-12-09 00:15:26 +01:00
Mathieu Lirzin e1b396b3c5
doc: Change short description.
* doc/cuirass.texi: Use "Build automation server" instead of "Continuous
Integration Tool".
2016-12-08 23:05:27 +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