templates: Display logs of blocking dependencies.

* src/cuirass/templates.scm (build-details): Determine failed outputs of
prerequisites and link to their logs.
This commit is contained in:
Ricardo Wurmus 2019-06-19 15:17:45 +02:00
parent efe7d36e64
commit 5885b9814d
No known key found for this signature in database
GPG Key ID: 197A5888235FACAC
1 changed files with 19 additions and 1 deletions

View File

@ -25,6 +25,8 @@
#:use-module (srfi srfi-2)
#:use-module (srfi srfi-19)
#:use-module (srfi srfi-26)
#:use-module (guix derivations)
#:use-module (guix store)
#:use-module ((cuirass database) #:select (build-status))
#:export (html-page
specifications-table
@ -146,6 +148,17 @@
`(span (@ (class "oi oi-x text-danger")
(title "Failed"))
" Failed"))))
(define blocking-outputs
(or (and-let* (((= (build-status failed-dependency) status))
(drv (false-if-exception
(read-derivation-from-file
(assq-ref build #:derivation)))))
(append-map derivation-input-output-paths
(filter (compose derivation-log-file derivation-input-path)
(with-store store
(derivation-prerequisites-to-build
store drv #:substitutable-info (const #f))))))
'()))
(define completed?
(or (= (build-status succeeded) status)
(= (build-status failed) status)))
@ -156,7 +169,12 @@
(tr (th "Build ID")
(td ,(assq-ref build #:id)))
(tr (th "Status")
(td ,display-status))
(td ,display-status
,@(map (lambda (output)
`((br)
(a (@ (href ,(string-append "/log/" (basename output))))
,output)))
blocking-outputs)))
(tr (th "System")
(td ,(assq-ref build #:system)))
(tr (th "Name")