summary refs log tree commit diff
path: root/gnu/ci.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-08-21 15:37:11 +0200
committerLudovic Courtès <ludo@gnu.org>2023-08-21 16:16:47 +0200
commit97f062f33c4243fb1fcb53e0806bdf6cd08ac9d6 (patch)
tree708dae07c1476ef926931e75851747f2535d52d0 /gnu/ci.scm
parentdf2117b8e0e9a35ef8be7f122a783190cafed669 (diff)
downloadguix-97f062f33c4243fb1fcb53e0806bdf6cd08ac9d6.tar.gz
ci: Honor user-specific systems for manifests.
* gnu/ci.scm (manifests->jobs): Add 'systems' argument.
[manifest-entry->job]: Add 'system' and honor it.
Honor it.
(cuirass-jobs): Pass SYSTEMS to 'manifests->jobs'.
Diffstat (limited to 'gnu/ci.scm')
-rw-r--r--gnu/ci.scm23
1 files changed, 13 insertions, 10 deletions
diff --git a/gnu/ci.scm b/gnu/ci.scm
index df98c8af97..7771add033 100644
--- a/gnu/ci.scm
+++ b/gnu/ci.scm
@@ -421,9 +421,9 @@ valid.  Append SUFFIX to the job name."
               (map channel-url channels)))
        arguments))
 
-(define (manifests->jobs store manifests)
+(define (manifests->jobs store manifests systems)
   "Return the list of jobs for the entries in MANIFESTS, a list of file
-names."
+names, for each one of SYSTEMS."
   (define (load-manifest manifest)
     (save-module-excursion
      (lambda ()
@@ -434,11 +434,12 @@ names."
     (string-append (manifest-entry-name entry) "-"
                    (manifest-entry-version entry)))
 
-  (define (manifest-entry->job entry)
+  (define (manifest-entry->job entry system)
     (let* ((obj (manifest-entry-item entry))
            (drv (parameterize ((%graft? #f))
                   (run-with-store store
-                    (lower-object obj))))
+                    (lower-object obj)
+                    #:system system)))
            (max-silent-time (or (and (package? obj)
                                      (assoc-ref (package-properties obj)
                                                 'max-silent-time))
@@ -450,11 +451,13 @@ names."
                        #:max-silent-time max-silent-time
                        #:timeout timeout)))
 
-  (map manifest-entry->job
-       (delete-duplicates
-        (append-map (compose manifest-entries load-manifest)
-                    manifests)
-        manifest-entry=?)))
+  (let ((entries (delete-duplicates
+                  (append-map (compose manifest-entries load-manifest)
+                              manifests)
+                  manifest-entry=?)))
+    (append-map (lambda (system)
+                  (map (cut manifest-entry->job <> system) entries))
+                systems)))
 
 (define (arguments->systems arguments)
   "Return the systems list from ARGUMENTS."
@@ -576,7 +579,7 @@ names."
          (('manifests . rest)
           ;; Build packages in the list of manifests.
           (let ((manifests (arguments->manifests rest channels)))
-            (manifests->jobs store manifests)))
+            (manifests->jobs store manifests systems)))
          (else
           (error "unknown subset" subset))))
      systems)))