Add builds to the store item page

This commit is contained in:
Christopher Baines 2020-07-04 09:31:12 +01:00
parent 5dc9ed65ff
commit e9d4e74e56
3 changed files with 50 additions and 2 deletions

View file

@ -24,6 +24,7 @@
#:export (select-build-stats
select-builds-with-context
select-builds-with-context-by-derivation-file-name
select-builds-with-context-by-derivation-output
select-build-by-build-server-and-build-server-build-id
select-build-by-build-server-and-derivation-file-name
select-required-builds-that-failed
@ -228,6 +229,35 @@ ORDER BY latest_build_status.timestamp DESC")
(exec-query conn query (list derivation-file-name)))
(define (select-builds-with-context-by-derivation-output conn output)
(define query
"
SELECT build_servers.id,
build_servers.url,
builds.build_server_build_id,
builds.derivation_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
(
SELECT DISTINCT ON (build_id) *
FROM build_status
ORDER BY build_id, id DESC
) AS latest_build_status
ON latest_build_status.build_id = builds.id
INNER JOIN derivation_output_details_sets
ON builds.derivation_output_details_set_id =
derivation_output_details_sets.id
INNER JOIN derivation_output_details
ON ARRAY[derivation_output_details.id] <@
derivation_output_details_sets.derivation_output_details_ids
WHERE derivation_output_details.path = $1
ORDER BY latest_build_status.timestamp DESC")
(exec-query-with-null-handling conn query (list output)))
(define (select-build-by-build-server-and-build-server-build-id
conn build-server-id build-server-build-id)
(define query

View file

@ -175,7 +175,9 @@
conn output-id))))
derivations)
(select-nars-for-output conn
filename)))))))
filename)
(select-builds-with-context-by-derivation-output
conn filename)))))))
(define handle-static-assets
(if assets-dir-in-store?

View file

@ -439,7 +439,8 @@ time."
(define (view-store-item filename
derivations
derivations-using-store-item-list
nars)
nars
builds)
(layout
#:body
`(,(header)
@ -495,6 +496,21 @@ time."
(dd ,(assoc-ref signature "host_name"))))
signatures)))))))
nars)))
(div
(@ (class "row"))
(div
(@ (class "col-sm-12"))
(h2 "Builds")
,@(map
(match-lambda
((build-server-id build-server-url build-server-build-id
derivation-file-name
timestamp status)
`(a (@ (href ,(build-url build-server-id
build-server-build-id
derivation-file-name)))
,(build-status-span status))))
builds)))
,@(map (lambda (derivation derivations-using-store-item)
`((div
(@ (class "row"))