summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* Add (cuirass logging) module.Ludovic Courtès2018-01-22
| | | | | | | * 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'.
* Augment '.gitignore'.Ludovic Courtès2018-01-22
|
* Initialize libgit's TLS certificate directory once and for all.Ludovic Courtès2018-01-22
| | | | | | * src/cuirass/base.scm (prepare-git): New procedure. Body moved from... (process-specs): ... here. Remove it. * bin/cuirass.in (main): Call 'prepare-git'.
* Monitor and report build events.Ludovic Courtès2018-01-22
| | | | | | * src/cuirass/base.scm (%newline): New variable. (build-event-output-port, handle-build-event): New procedures. (build-packages): Use 'handle-build-event'.
* http: /build/N/log/raw redirects to /log.Ludovic Courtès2018-01-07
| | | | | | | | | | | This moves log handling responsibility to 'guix publish'. * src/cuirass/http.scm (handle-log-request): Remove. (url-handler): Change /log/raw URI handler to return 302 to /log/OUTPUT. * tests/http.scm (log-file-name): Remove, and remove code to create and delete it. ("fill-db"): Change #:log value. ("/build/1/log/raw"): Expect 302.
* build: Update 'test-driver.scm' from Guix.Ludovic Courtès2018-01-07
| | | | | * build-aux/test-driver.scm: Update from current Guix. * Makefile.am (SCM_LOG_DRIVER): Add -L and -e flags.
* database: Extend and test 'db-get-builds'.Ludovic Courtès2018-01-07
| | | | | | | | | | * src/cuirass/database.scm (db-get-builds): Make 'order' a separate filter. Add 'format-limit-clause'. Reverse OUTPUTS. * tests/database.scm (make-dummy-eval, make-dummy-derivation) (make-dummy-build): New procedures. (with-temporary-database): New macro. ("database"): Use 'make-dummy-build'. ("db-get-builds"): New test.
* doc: Clarify the relationship of "repo_name" and "name".Leo Famulari2017-10-14
| | | | * doc/cuirass.texi (Specifications): Mention "name".
* doc: Fix typos.Ricardo Wurmus2017-10-04
| | | | * doc/cuirass.texi: Fix typographic errors and typos.
* Do not mistakenly use 'GIT_SSL_CAINFO' as a directory name.Ludovic Courtès2017-09-29
| | | | | | | | | | 'GIT_SSL_CAINFO' designates a single-file certificate bundle, not a directory; thus it must be passed as the second argument to 'set-tls-certificate-locations!'. * src/cuirass/base.scm (process-specs): Pass $SSL_CERT_DIR as the first argument to 'set-tls-certificate-locations!', and $GIT_SSL_CAINFO or $SSL_CERT_FILE as the second argument.
* cuirass: Add --listen command line option.Jan Nieuwenhuizen2017-09-18
| | | | | | | | * 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.
* base: Show feedback when build has finished.Jan Nieuwenhuizen2017-09-17
| | | | | * src/cuirass/base.scm (build-packages): Print some feedback when derivations have been built.
* gnu-system: Accept subset with list of package names.Jan Nieuwenhuizen2017-09-17
| | | | | * examples/gnu-system.scm (hydra-jobs): Accept subset with list of package names.
* base: Make working copy writable.Jan Nieuwenhuizen2017-09-17
| | | | | * src/cuirass/base.scm (copy-repository-cache): Make working copy writable. Fixes guix .po build errors.
* doc: Mention the supported transports.Ludovic Courtès2017-09-17
| | | | | | | Suggested by Jan Nieuwenhuizen <janneke@gnu.org>. * doc/cuirass.texi (Overview): Explain that "dumb HTTP" is not supported.
* cuirass: add Hydra compatible HTTP API.Mathieu Othacehe2017-09-08
| | | | | | | | | | | | | * 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.
* cuirass: Store new information in database to prepare new HTTP APIMathieu Othacehe2017-09-08
| | | | | | | | | | | | | | | | | | | | | 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.
* cuirass: Store new information in database to prepare new HTTP APIMathieu Othacehe2017-09-08
| | | | | | | | | | | | | | | | | | | | | 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.
* Update dependencies in README.Ricardo Wurmus2017-08-26
| | | | * README (Requirenments): Replace git with guile-git.
* base: Set certificate location.Ricardo Wurmus2017-08-26
| | | | | * src/cuirass/base.scm (process-specs): Set certificate location to the value in GIT_SSL_CAINFO or SSL_CERT_DIR.
* database: 'db-add-build' is now idempotent.Ludovic Courtès2017-08-26
| | | | | | | | | | | Fixes <https://bugs.gnu.org/28094>. Reported by Ricardo Wurmus <rekado@elephly.net>. * src/cuirass/database.scm (SQLITE_CONSTRAINT) (SQLITE_CONSTRAINT_PRIMARYKEY): New variables. (db-add-build): Catch 'sqlite-error, and swallow SQLITE_CONSTRAINT_PRIMARYKEY errors. * tests/database.scm ("db-add-build"): New test.
* cuirass: Fix Guile current-processor-count deprecation warnings.Mathieu Othacehe2017-08-02
| | | | | | | | | When current-processor-count is used without (ice-9 threads) being used, Guile complains with the following warning: Import (ice-9 threads) to have access to `current-processor-count'. * src/cuirass/base.scm: Use (ice-9 threads).
* doc: Update contribution email.Mathieu Othacehe2017-07-31
| | | | | * doc/cuirass.texi (Contribution): guix-devel@gnu.org is preferred for contributions.
* base: Report git errors.Mathieu Othacehe2017-07-31
| | | | | | | | | * src/cuirass/base.scm (report-git-error): New procedure. (with-git-error-handling): New macro. (process-specs): Use with-git-error-handling to catch and report git errors. * build-aux/guix.scm (package)[inputs]: Add guile-git. * configure.ac: Check for (git) module. Also check that (git) exports git-error-message procedure.
* base: Report evaluation error.Mathieu Othacehe2017-07-30
| | | | | | | | | * src/cuirass/base.scm (&evaluation-error): New condition type. (evaluate): Report an &evaluation-error if eof-object? is true on data read from port. Otherwise, suppose that data are correct and keep things going. (process-specs): Catch &evaluation-error, report the error in the log and keep going.
* build-aux: Update to Guile 2.2.Mathieu Othacehe2017-07-12
| | | | build-aux/guix.scm (package): Update to Guile 2.2.
* cuirass: Add fallback parameter.Mathieu Othacehe2017-07-12
| | | | | | | | * src/cuirass/base.scm (%fallback?): New exported parameter. (process-specs)[set-build-options]: Pass fallback parameter. * bin/cuirass.in (%options): Add fallback. (main): Set %fallback? parameter. (show-help): Update.
* database: Fix typo.Mathieu Othacehe2017-07-12
| | | | | | * src/cuirass/database.scm (db-get-stamp, db-add-stamp): Replace #:id by #:name. There is no #:id in specifications. Plus, the primary key of Specifications is #:name.
* base: Fix time-monotonic Guile issue.Mathieu Othacehe2017-07-12
| | | | | * src/cuirass/base.scm: Replace time-monotonic with time-tai with Guile 2.2, to avoid wrong evaluation durations.
* cuirass: Stop λ/lambda mixing.Mathieu Othacehe2017-07-06
| | | | | | | | | | | | | * bin/cuirass.in: Replace λ by lambda. * bin/evaluate.in: Ditto. * build-aux/guix.scm: Ditto. * examples/gnu-system.scm: Ditto. * examples/guix-track-git.scm: Ditto. * src/cuirass.scm: Ditto. * src/cuirass/base.scm: Ditto. * src/cuirass/database.scm: Ditto. * src/cuirass/ui.scm: Ditto. * src/cuirass/utils.scm: Remove λ* macro.
* repo: Remove dead code.Mathieu Othacehe2017-07-06
| | | | | | | | * 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.
* base: Use (guix git) module.Mathieu Othacehe2017-07-05
| | | | | | | | | | * src/cuirass/base.scm (copy-repository-cache) : New procedure. (fetch-repository): Use latest-repository-commit to fetch git repository instead of raw git system commands. (process-specs): Use fetch-repository to get a store directory containing the repository described in SPEC, add copy it to cache with "copy-repository-cache". * configure.ac: Check (guix git) module presence.
* utils: Remove useless procedures.Mathieu Othacehe2017-07-01
| | | | | | | | | | | * src/cuirass/utils.scm (mkdir-p, make-user-module, call-with-temporary-directory, with-directory-excursion): Remove because already defined in guix. * tests/utils (with-directory-excursion): Remove associated test. * src/cuirass/base.scm: Use (guix build utils) to provide procedure removed from (cuirass utils). * bin/evaluate.in: Ditto. * bin/cuirass.in: Use "make-user-module" provided by (guix ui).
* repo: remove git-repo.Mathieu Othacehe2017-07-01
| | | | | | | * src/cuirass/repo.scm (git-repo): Remove it. * tests/repo.scm: Remove related tests. git-repo is not used and it's usecases will be covered by (guix git).
* configure.ac: Update homepage and bug report email.Mathieu Othacehe2017-07-01
| | | | * configure.ac (AC_INIT): Update homepage and bug report email.
* base: Send build output to the bit bucket.Ludovic Courtès2017-06-04
| | | | | | | | | Fixes a regression introduced in a42cf16fec114c26d16d5153053a2c6a1a3b1d11 whereby build logs would go the Cuirass' stderr. * src/cuirass/base.scm (build-packages): Parameterize 'current-build-output-port' to a void output port.
* build: Fix load-path/compile-path confusion.Ludovic Courtès2017-05-10
| | | | | | | | This is a followup to b4400bc98996f1a3ac7088a8f9e19daf684afcb1. * Makefile.am (nodist_pkgmodule_DATA): New variable. (nodist_pkgobject_DATA): Remove config.scm. (do_subst): Use $(guileobjectdir).
* build: Install .go files to $(libdir)/guile.Ludovic Courtès2017-05-10
| | | | | | | | | * 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.
* build: Prefer building with Guile 2.2.Ludovic Courtès2017-05-10
| | | | | * Makefile.am (guilesitedir): Append @GUILE_EFFECTIVE_VERSION@. * configure.ac: Use 'GUILE_PKG', and pass "2.2" first.
* tests: Compare JSON objects instead of JSON strings.Ludovic Courtès2017-05-10
| | | | | | | This fixes a test failure with Guile 2.2. * tests/http.scm (hash-table-keys, hash-table=?): New procedures. ("spec->json-string"): Use it to compare the JSON objects.
* doc: Do not use "path" when a file name is meant.Ricardo Wurmus2017-05-05
| | | | | * doc/cuirass.texi (Database): Replace instances of "path" with more accurate terms.
* doc: Document database schema.Ricardo Wurmus2017-05-05
| | | | * doc/cuirass.texi: Add "Database" node.
* doc: Fix spelling.Ricardo Wurmus2017-05-05
| | | | | | | * doc/cuirass.texi (Introduction): Fix typos and use American English spelling. Co-authored-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
* base: Provide 'build-derivations' with the full list of derivations.Ludovic Courtès2017-02-24
| | | | | | | | | | This improves parallelism when 'max-jobs' is large. * src/cuirass/base.scm (build-packages): Rewrite to pass the complete list of derivations to 'build-derivations' at once. Handle multiple outputs. * src/schema.sql (Builds): Make "output" part of the primary key. Co-authored-by: Mathieu Lirzin <mthl@gnu.org>
* base: Remove unnecessary 'file-exists?' call.Ludovic Courtès2017-02-24
| | | | | * src/cuirass/base.scm (fetch-repository): Remove 'file-exists?' call before 'mkdir-p'.
* base: Do not stop on the first build failure.Ludovic Courtès2017-02-24
| | | | | * src/cuirass/base.scm (process-specs): Systematically call 'set-build-options'. Pass #:keep-going? #t.
* evaluate: Use specification #:name in evaluation alists.Mathieu Lirzin2017-02-24
| | | | | | | | This fixes an issue in the database, where rows from the 'Evaluations' table were having an "#f" value instead of a valid reference to their corresponding specification. * bin/evaluate.in (main): Use specification #:name instead of obsolete #:id.
* base: Handle multi-directories in load-path.Mathieu Othacehe2017-02-06
| | | | | | | * src/cuirass/base.scm (set-guix-package-path!): Parse colon separated directories in load-path. Co-authored-by: Mathieu Lirzin <mthl@gnu.org>
* doc: Describe how to send patches.Mathieu Lirzin2017-01-29
| | | | * doc/cuirass.texi (Contributing): Describe how to send patches.
* maint: Add a pointer to the manual in the README.Mathieu Lirzin2017-01-29
| | | | * README <Contributing>: Point to the corresponding section in the manual.