diff options
| author | Arun Isaac | 2025-11-07 01:24:21 +0000 |
|---|---|---|
| committer | Arun Isaac | 2025-11-07 01:28:56 +0000 |
| commit | 7a2fedf8fedff844536dcbe14af4232fb61ff095 (patch) | |
| tree | 78d71136e431b65e94bcc63ec977a968bad2cb2f /guix/forge/forge.scm | |
| parent | 749119f842aaca8b2ec67f94486a19b8ea2ce964 (diff) | |
| download | guix-forge-7a2fedf8fedff844536dcbe14af4232fb61ff095.tar.gz guix-forge-7a2fedf8fedff844536dcbe14af4232fb61ff095.tar.lz guix-forge-7a2fedf8fedff844536dcbe14af4232fb61ff095.zip | |
forge: Add project CI badges to home page.
Diffstat (limited to 'guix/forge/forge.scm')
| -rw-r--r-- | guix/forge/forge.scm | 23 |
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)))))) |
