about summary refs log tree commit diff
path: root/guix
diff options
context:
space:
mode:
Diffstat (limited to 'guix')
-rw-r--r--guix/forge/forge.scm23
1 files changed, 21 insertions, 2 deletions
diff --git a/guix/forge/forge.scm b/guix/forge/forge.scm
index 802ea97..9fa2cc5 100644
--- a/guix/forge/forge.scm
+++ b/guix/forge/forge.scm
@@ -148,17 +148,34 @@
                      (ice-9 match)
                      (htmlprag))
 
+        (define (laminar-badge job-name)
+          `(li (a (@ (href ,(string-append "https://"
+                                           #$(forge-configuration-laminar-domain config)
+                                           "/jobs/"
+                                           job-name)))
+                  (img (@ (src ,(string-append "https://"
+                                               #$(forge-configuration-laminar-domain config)
+                                               "/badge/"
+                                               job-name
+                                               ".svg")))))))
+
         (mkdir #$output)
         (let ((html
                (sxml->html
                 `(html
                   (body
                    ,@(map (match-lambda
-                            ((name description website-link)
+                            ((name description website-link jobs)
                              `((h2 ,(if website-link
                                         `(a (@ (href ,website-link))
                                             ,name)
                                         name))
+                               ,@(match jobs
+                                   (() '())
+                                   (_
+                                    (if #$(forge-configuration-laminar-domain config)
+                                        `((ul ,@(map laminar-badge jobs)))
+                                        '())))
                                ,@(if description
                                      `((p ,description))
                                      '())
@@ -175,7 +192,9 @@
                                           (and (forge-project-website-ci-job project)
                                                (if (forge-project-web-domain project)
                                                    (string-append "https://" (forge-project-web-domain project))
-                                                   (string-append "/" (forge-project-name project) "/")))))
+                                                   (string-append "/" (forge-project-name project) "/")))
+                                          (map forge-laminar-job-name
+                                               (forge-project-all-ci-jobs project config))))
                                   (forge-configuration-projects config))))))))
           (call-with-output-file (string-append #$output "/index.html")
             (cut put-string <> html))))))