diff options
author | Christopher Baines <mail@cbaines.net> | 2019-12-22 11:52:54 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2019-12-22 14:27:49 +0000 |
commit | e4a7f221c946b4c03a418e927ef1579e8b09ce83 (patch) | |
tree | 50744853da34757abe39e23e9fc3554a56377dfd /guix-data-service | |
parent | ff433dfce6b54c80fd5d8abf8b0e6f534437067b (diff) | |
download | data-service-e4a7f221c946b4c03a418e927ef1579e8b09ce83.tar data-service-e4a7f221c946b4c03a418e927ef1579e8b09ce83.tar.gz |
Filter builds on the revision builds page by revision
Diffstat (limited to 'guix-data-service')
-rw-r--r-- | guix-data-service/model/build.scm | 27 | ||||
-rw-r--r-- | guix-data-service/web/revision/controller.scm | 3 |
2 files changed, 25 insertions, 5 deletions
diff --git a/guix-data-service/model/build.scm b/guix-data-service/model/build.scm index 6dd7a96..5c943a6 100644 --- a/guix-data-service/model/build.scm +++ b/guix-data-service/model/build.scm @@ -87,7 +87,8 @@ ORDER BY status")) (list revision-commit) '())))))) -(define (select-builds-with-context conn build-statuses build-server-ids) +(define* (select-builds-with-context conn build-statuses build-server-ids + #:key revision-commit) (define where-conditions (filter string? @@ -103,15 +104,29 @@ ORDER BY status")) "builds.build_server_id IN (" (string-join (map number->string build-server-ids) ", ") - ")"))))) + ")")) + (when revision-commit + "guix_revisions.commit = $1")))) (define query - (string-append " + (string-append + " SELECT builds.id, build_servers.url, derivations.file_name, latest_build_status.timestamp, latest_build_status.status FROM builds INNER JOIN build_servers ON build_servers.id = builds.build_server_id INNER JOIN derivations ON derivations.file_name = builds.derivation_file_name +" + (if revision-commit + " +INNER JOIN package_derivations + ON derivations.id = package_derivations.derivation_id +INNER JOIN guix_revision_package_derivations + ON guix_revision_package_derivations.package_derivation_id = package_derivations.id +INNER JOIN guix_revisions + ON guix_revision_package_derivations.revision_id = guix_revisions.id" + "") + " INNER JOIN ( SELECT DISTINCT ON (build_id) * @@ -129,7 +144,11 @@ ON latest_build_status.build_id = builds.id ORDER BY latest_build_status.timestamp DESC LIMIT 100")) - (exec-query conn query)) + (exec-query conn + query + (if revision-commit + (list revision-commit) + '()))) (define (select-builds-with-context-by-derivation-file-name conn derivation-file-name) diff --git a/guix-data-service/web/revision/controller.scm b/guix-data-service/web/revision/controller.scm index faf3380..05a259b 100644 --- a/guix-data-service/web/revision/controller.scm +++ b/guix-data-service/web/revision/controller.scm @@ -774,7 +774,8 @@ (assq-ref query-parameters 'build_status) (assq-ref query-parameters - 'build_server)))))) + 'build_server) + #:revision-commit commit-hash))))) (define* (render-revision-lint-warnings mime-types conn |