Break down the build stats by build server
This commit is contained in:
parent
6e9b07bc4a
commit
633e757fe8
3 changed files with 39 additions and 10 deletions
|
|
@ -11,10 +11,11 @@
|
||||||
insert-build
|
insert-build
|
||||||
ensure-build-exists))
|
ensure-build-exists))
|
||||||
|
|
||||||
(define (select-build-stats conn)
|
(define (select-build-stats conn build-servers)
|
||||||
(define query
|
(define query
|
||||||
"
|
(string-append
|
||||||
SELECT latest_build_status.status AS build_status, COUNT(*)
|
"
|
||||||
|
SELECT latest_build_status.status AS build_status, builds.build_server_id, COUNT(*)
|
||||||
FROM derivation_output_details_sets
|
FROM derivation_output_details_sets
|
||||||
LEFT JOIN builds
|
LEFT JOIN builds
|
||||||
ON builds.derivation_output_details_set_id =
|
ON builds.derivation_output_details_set_id =
|
||||||
|
|
@ -26,10 +27,27 @@ LEFT JOIN
|
||||||
ORDER BY build_id, timestamp DESC
|
ORDER BY build_id, timestamp DESC
|
||||||
) AS latest_build_status
|
) AS latest_build_status
|
||||||
ON builds.id = latest_build_status.build_id
|
ON builds.id = latest_build_status.build_id
|
||||||
GROUP BY latest_build_status.status
|
"
|
||||||
ORDER BY status")
|
(if build-servers
|
||||||
|
(string-append
|
||||||
|
"WHERE builds.build_server_id IN ("
|
||||||
|
(string-join (map number->string build-servers)
|
||||||
|
", ")
|
||||||
|
")")
|
||||||
|
"")
|
||||||
|
"
|
||||||
|
GROUP BY latest_build_status.status, builds.build_server_id
|
||||||
|
ORDER BY status"))
|
||||||
|
|
||||||
(exec-query conn query))
|
(map (match-lambda
|
||||||
|
(((build-status) . data)
|
||||||
|
(list build-status
|
||||||
|
(map (match-lambda
|
||||||
|
((build-server-id count)
|
||||||
|
(cons (string->number build-server-id)
|
||||||
|
(string->number count))))
|
||||||
|
data))))
|
||||||
|
(group-list-by-first-n-fields 1 (exec-query conn query))))
|
||||||
|
|
||||||
(define (select-builds-with-context conn build-statuses build-server-ids)
|
(define (select-builds-with-context conn build-statuses build-server-ids)
|
||||||
(define where-conditions
|
(define where-conditions
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,10 @@
|
||||||
((id url lookup-all-derivations)
|
((id url lookup-all-derivations)
|
||||||
(cons url id)))
|
(cons url id)))
|
||||||
(select-build-servers conn))
|
(select-build-servers conn))
|
||||||
(select-build-stats conn)
|
(select-build-stats
|
||||||
|
conn
|
||||||
|
(assq-ref parsed-query-parameters
|
||||||
|
'build_server))
|
||||||
(select-builds-with-context
|
(select-builds-with-context
|
||||||
conn
|
conn
|
||||||
(assq-ref parsed-query-parameters
|
(assq-ref parsed-query-parameters
|
||||||
|
|
|
||||||
|
|
@ -42,14 +42,22 @@
|
||||||
(thead
|
(thead
|
||||||
(tr
|
(tr
|
||||||
(th (@ (class "col-md-2")) "Status")
|
(th (@ (class "col-md-2")) "Status")
|
||||||
(th (@ (class "col-md-2")) "Count")))
|
,@(map (match-lambda
|
||||||
|
((url . id)
|
||||||
|
`(th (@ (class "col-md-2"))
|
||||||
|
,url)))
|
||||||
|
build-server-options)))
|
||||||
(tbody
|
(tbody
|
||||||
,@(map
|
,@(map
|
||||||
(match-lambda
|
(match-lambda
|
||||||
((status count)
|
((status counts-by-build-server-id)
|
||||||
`(tr
|
`(tr
|
||||||
(td ,(build-status-span status))
|
(td ,(build-status-span status))
|
||||||
(td ,count))))
|
,@(map (lambda (id)
|
||||||
|
`(td ,(or (assq-ref counts-by-build-server-id
|
||||||
|
id)
|
||||||
|
0)))
|
||||||
|
(map cdr build-server-options)))))
|
||||||
stats)))))
|
stats)))))
|
||||||
(div
|
(div
|
||||||
(@ (class "row"))
|
(@ (class "row"))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue