From 5885b9814d0f53dbac7d1b22f392b86199c2d976 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 19 Jun 2019 15:17:45 +0200 Subject: templates: Display logs of blocking dependencies. * src/cuirass/templates.scm (build-details): Determine failed outputs of prerequisites and link to their logs. --- src/cuirass/templates.scm | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/cuirass/templates.scm b/src/cuirass/templates.scm index 989cbf9..fb3c7e9 100644 --- a/src/cuirass/templates.scm +++ b/src/cuirass/templates.scm @@ -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") -- cgit v1.2.3