aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-12-22 11:52:54 +0000
committerChristopher Baines <mail@cbaines.net>2019-12-22 14:27:49 +0000
commite4a7f221c946b4c03a418e927ef1579e8b09ce83 (patch)
tree50744853da34757abe39e23e9fc3554a56377dfd /guix-data-service
parentff433dfce6b54c80fd5d8abf8b0e6f534437067b (diff)
downloaddata-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.scm27
-rw-r--r--guix-data-service/web/revision/controller.scm3
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