diff options
author | Christopher Baines <mail@cbaines.net> | 2019-12-27 00:09:07 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2019-12-27 00:09:07 +0000 |
commit | 76548779914fa2b5dda8fa30d2a53f846cbb5467 (patch) | |
tree | 8ce32e87680b1a61d65daeea9ff8102dd307057d /guix-data-service/model | |
parent | 0e3c28ffbd3df31d805bc7f16acc76a8f6201d0e (diff) | |
download | data-service-76548779914fa2b5dda8fa30d2a53f846cbb5467.tar data-service-76548779914fa2b5dda8fa30d2a53f846cbb5467.tar.gz |
Improve the builds info on the revision package version page
Show multiple builds, and link to the build page.
Diffstat (limited to 'guix-data-service/model')
-rw-r--r-- | guix-data-service/model/derivation.scm | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/guix-data-service/model/derivation.scm b/guix-data-service/model/derivation.scm index ca21525..9cb6ec6 100644 --- a/guix-data-service/model/derivation.scm +++ b/guix-data-service/model/derivation.scm @@ -108,8 +108,19 @@ (define (select-derivations-by-revision-name-and-version conn revision-commit-hash name version) (define query " -SELECT derivations.system, package_derivations.target, derivations.file_name, - latest_build_status.status +SELECT derivations.system, + package_derivations.target, + derivations.file_name, + JSON_AGG( + json_build_object( + 'build_server_id', builds.build_server_id, + 'status', latest_build_status.status, + 'timestamp', latest_build_status.timestamp, + 'build_for_equivalent_derivation', + builds.derivation_file_name != derivations.file_name + ) + ORDER BY latest_build_status.timestamp + ) FROM derivations INNER JOIN package_derivations ON derivations.id = package_derivations.derivation_id @@ -124,6 +135,8 @@ INNER JOIN derivations_by_output_details_set LEFT OUTER JOIN builds ON derivations_by_output_details_set.derivation_output_details_set_id = builds.derivation_output_details_set_id +LEFT OUTER JOIN build_servers + ON builds.build_server_id = build_servers.id LEFT OUTER JOIN ( SELECT DISTINCT ON (build_id) * FROM build_status @@ -133,11 +146,25 @@ LEFT OUTER JOIN ( WHERE guix_revisions.commit = $1 AND packages.name = $2 AND packages.version = $3 +GROUP BY derivations.system, + package_derivations.target, + derivations.file_name ORDER BY derivations.system DESC, package_derivations.target DESC, derivations.file_name") - (exec-query conn query (list revision-commit-hash name version))) + (map (match-lambda + ((system target file-name builds-json) + (list system + target + file-name + (filter (lambda (build) + (assoc-ref build "status")) + (vector->list + (json-string->scm builds-json)))))) + (exec-query conn + query + (list revision-commit-hash name version)))) (define* (select-derivations-in-revision conn commit-hash |