| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
* bin/cuirass.in (show-help): Document "--web" option.
(%options): Default to running without web interface.
(main): Either run the web interface or build packages.
* README: Mention the "--web" option.
|
|
|
|
|
| |
* src/cuirass/templates.scm: Factor out class and title helpers
for build statuses, and handle all the statuses.
|
|
|
|
|
| |
* src/cuirass/database.scm (query->bind-arguments): Handle ^ and $ characters
in query strings.
|
|
|
|
|
| |
* src/cuirass/templates.scm (pagination): Disable "Last" and "First"
if applicable.
|
|
|
|
| |
* src/cuirass/templates.scm (evaluation-badges): Add ‘title’ attributes.
|
|
|
|
|
| |
* src/cuirass/templates.scm (html-page): Include CSS for widening the search
input field on focus.
|
|
|
|
|
|
|
|
| |
* src/cuirass/templates.scm (search-form): Take the query as an argument and
set it as the value (unless #F).
(html-page): Optionally take a value for QUERY as an argument.
* src/cuirass/http.scm (url-handler): Let "search" handler pass QUERY to
HTML-PAGE.
|
|
|
|
|
| |
* src/cuirass/database.scm (query->bind-arguments): Ignore invalid query
terms.
|
|
|
|
|
| |
* src/cuirass/templates.scm (build-details): Determine failed outputs of
prerequisites and link to their logs.
|
|
|
|
|
| |
* src/cuirass/database.scm (db-get-evaluation-summary): New procedure.
* src/cuirass/http.scm (url-handler): Display number of builds in tabs.
|
|
|
|
|
|
| |
All of them are included in "failed".
* src/cuirass/http.scm (url-handler): Remove extraneous tabs.
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Use "pending" instead of "scheduled".
|
|
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Split result for "eval" page in tabs.
* src/cuirass/templates.scm (build-eval-table): Remove border from table head;
Remove lead paragraph.
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Use "jobset" instead of "spec".
|
|
|
|
|
| |
* src/cuirass/templates.scm (build-eval-table, build-search-results-table):
Link ID to build details URL.
|
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Add handler for /build/<id>/details.
* src/cuirass/templates.scm (build-details): New procedure.
|
|
|
|
| |
* src/cuirass/database.scm (db-get-specifications): Order rows by "name".
|
|
|
|
|
|
| |
* src/cuirass/database.scm (query->bind-arguments): New procedure.
(db-get-builds-by-search): Support filtering by spec and system.
(db-get-builds-query-min, db-get-builds-query-max): Adjust.
|
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Skip computation of builds-id-min and
builds-id-max when query is missing.
|
|
|
|
|
| |
* src/cuirass/templates.scm (build-search-results-table): Highlight query
string.
|
|
|
|
|
|
|
|
|
|
| |
* src/cuirass/database.scm (db-get-builds-by-search, db-get-builds-query-min,
db-get-builds-query-max): New procedures.
* src/cuirass/http.scm (handle-builds-search-request): New procedure.
(url-handler): Handle "search" route.
* src/cuirass/templates.scm (search-form): New variable.
(html-page): Use it.
(build-search-results-table): New procedure.
|
|
|
|
| |
* src/static/images/logo.png: Replace "GuixSD" with "Guix".
|
|
|
|
|
| |
* src/cuirass/base.scm (process-specs): Catch 'git-error around call to
'process'.
|
|
|
|
|
|
|
|
| |
Fixes <https://bugs.gnu.org/33407>.
Reported by Björn Höfling <bjoern.hoefling@bjoernhoefling.de>.
* src/cuirass/database.scm (catch-sqlite-error): Add missing MESSAGE
argument to 'throw'.
|
|
|
|
|
|
| |
* src/cuirass/database.scm (catch-sqlite-error): New macro.
(db-add-checkout, db-add-output, db-add-build): Use it instead of custom
'catch' block'.
|
|
|
|
|
| |
* src/cuirass/templates.scm (evaluation-badges): Use a special badge
denoting failure when the sum of all jobs is zero.
|
|
|
|
|
| |
* src/cuirass/database.scm (db-get-evaluations-build-summary): Remove
duplicate #:in-progress entry.
|
|
|
|
|
|
| |
* examples/random-jobs.scm (make-random-jobs): Fail once in a while.
(%seed, %state): New variables.
(random-derivation): Use %SEED.
|
|
|
|
|
|
|
| |
Fixes <https://bugs.gnu.org/32734>.
* src/cuirass/base.scm (evaluate): Call 'db-set-evaluation-done' upon
'&evaluation-error'.
|
|
|
|
|
| |
* src/cuirass/templates.scm (build-eval-table)[table-row]: Define
'completed?'. Add link to build log iff COMPLETED? is true.
|
|
|
|
|
| |
* src/cuirass/templates.scm (time->string): New procedure.
(build-eval-table): Use it instead of 'strftime'.
|
|
|
|
|
|
| |
* src/cuirass/templates.scm (build-eval-table)[table-header]: Change
"Nixname" to "Name" and "Finished at" to "Completion time". Use strings
for each header.
|
|
|
|
|
| |
* src/cuirass/templates.scm (build-eval-table): Display a finish time
only when STATUS is 'succeeded' or 'failed'.
|
|
|
|
| |
* src/cuirass/base.scm (spawn-builds): Add missing space in message.
|
|
|
|
|
|
|
| |
This is a followup to be489a26c0e6a5f23a48142a87728a0ec8bc3c9c.
* src/cuirass/base.scm (update-build-statuses!): Use DRV,
not (derivation-file-name DRV).
|
|
|
|
|
|
| |
* src/cuirass/templates.scm (build-eval-table)[table-row]: Use the
'build-status' macro instead of numeric values. Distinguish the
'cancel' and 'failed-dependency' cases from other failure cases.
|
|
|
|
| |
* examples/random-jobs.scm (random-derivation): Fail randomly.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes <https://bugs.gnu.org/33124>.
* src/cuirass/base.scm (%gc-root-directory, %gc-root-ttl): New variables.
(gc-root-expiration-time, register-gc-root): New procedures.
(handle-build-event)[gc-roots]: New procedure.
Upon 'build-succeeded' events, call 'register-gc-root' and
'maybe-remove-expired-cache-entries'.
* bin/cuirass.in (show-help, %options): Add '--ttl'.
(main): Parameterize %GC-ROOT-TTL. Create %GC-ROOT-DIRECTORY.
* doc/cuirass.texi (Invocation): Document '--ttl'.
|
|
|
|
|
| |
* src/cuirass/base.scm (with-store): Pass #:build-verbosity to
'set-build-options'.
|
|
|
|
|
| |
* src/web/server/fiberized.scm (socket-loop): Remove "HTTP connection"
message logging.
|
|
|
|
| |
* src/cuirass/http.scm (run-cuirass-server): Remove useless lambda expression.
|
|
|
|
|
| |
* src/cuirass/base.scm (update-build-statuses!): Call 'log-file' and use
that to distinguish between 'failed' and 'failed-dependency'.
|
|
|
|
|
|
|
| |
* src/cuirass/database.scm (expect-one-row): New procedure.
(db-get-build, db-get-evaluations-id-min, db-get-evaluations-id-max,
db-get-builds-min, db-get-builds-max, db-get-evaluation-specification): Use
it.
|
|
|
|
|
|
|
| |
* src/cuirass/http.scm (url-handler): Pass the ID argument to
BUILD-EVAL-TABLE.
* src/cuirass/templates.scm (build-eval-table): Add an EVAL-ID argument, add
title.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* src/cuirass/database.scm (db-get-evaluation-specification): New exported
procedure.
* src/cuirass/http.scm (respond-html): Allow to pass CODE as argument.
(respond-html-eval-not-found): New procedure.
(url-handler): Fill navigation arguments. Handle the case where the
evaluation doesn't exist.
* src/cuirass/templates.scm (navigation-items): New procedure.
(html-page): Add navigation bar.
Co-authored-by: Clément Lassieur <clement@lassieur.org>
|
|
|
|
|
| |
* src/cuirass/templates.scm (build-eval-table): Add build log links to the
table.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* src/cuirass/database.scm (db-get-builds): Add 'succeeded' and 'failed'
status filters.
(db-get-builds-min, db-get-builds-max): Add support for a new 'status'
argument.
* src/cuirass/http.scm (url-handler): Add a status argument for the '/eval/id'
endpoint.
* src/cuirass/templates.scm (evaluation-badges): Add links to the buttons.
(build-eval-table): Add a 'status' argument.
Co-authored-by: Clément Lassieur <clement@lassieur.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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=?.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes <https://bugs.gnu.org/32234>.
* bin/cuirass.in (main): Keep only one WITH-DATABASE call around all fibers.
Remove all DB arguments.
* src/cuirass/base.scm (evaluate, update-build-statuses!, spawn-builds,
handle-build-event, build-packages): Remove all DB arguments.
(clear-build-queue, cancel-old-builds): Wrap in WITH-DB-CRITICAL-SECTION,
remove all DB arguments.
(restart-builds): Remove the NON-BLOCKING call, remove all DB arguments.
(process-specs): Remove all DB arguments, remove the WITH-DATABASE call.
* src/cuirass/database.scm (%db-channel): New parameter.
(with-db-critical-section): New macro.
(db-add-input, db-add-specification, db-get-inputs, db-get-specifications,
db-add-evaluation, db-add-build, db-update-build-status!, db-get-outputs,
db-get-builds, db-get-build, db-get-pending-derivations, db-get-stamp,
db-add-stamp, db-get-evaluations, db-get-evaluations-build-summary,
db-get-evaluations-id-min, db-get-evaluations-id-max, db-get-builds-min,
db-get-builds-max): Wrap in WITH-DB-CRITICAL-SECTION, remove all DB arguments.
(with-database): Wrap BODY in PARAMETERIZE form that sets %DB-CHANNEL to the
channel returned by MAKE-CRITICAL-SECTION.
* src/cuirass/http.scm (handle-build-request, handle-builds-request): Remove
all DB arguments.
(url-handler): Remove all DB arguments, remove the DB-CHANNEL state, remove
the WITH-CRITICAL-SECTION calls.
(run-cuirass-server): Remove the DB arguments, remove the
MAKE-CRITICAL-SECTION call.
* src/cuirass/utils.scm (make-critical-section): Replace SPAWN-FIBER with
CALL-WITH-NEW-THREAD. Wrap body in PARAMETERIZE form that clears
CURRENT-FIBER.
* tests/database.scm (with-temporary-database, "db-add-specification",
"db-add-build", "db-update-build-status!", "db-get-builds",
"db-get-pending-derivations"): Remove the DB arguments.
("db-init"): Set the %DB-CHANNEL parameter to the channel returned by
MAKE-CRITICAL-SECTION, and return #t.
("database"): Set %DB-CHANNEL to #f during cleanup.
* tests/http.scm ("db-init"): Set the %DB-CHANNEL parameter to the channel
returned by MAKE-CRITICAL-SECTION, and return #t.
("cuirass-run", "fill-db"): Remove the DB arguments.
("http"): Set %DB-CHANNEL to #f during cleanup.
|