summaryrefslogtreecommitdiff
path: root/gnu
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
parentdf2117b8e0e9a35ef8be7f122a783190cafed669 (diff)
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')
-rw-r--r--gnu/ci.scm23
1 files changed, 13 insertions, 10 deletions
diff --git a/gnu/ci.scm b/gnu/ci.scm
index df98c8af972..7771add033b 100644
--- a/gnu/ci.scm
+++ b/gnu/ci.scm
@@ -421,9 +421,9 @@ valid. Append SUFFIX to the job name."
421 (map channel-url channels))) 421 (map channel-url channels)))
422 arguments)) 422 arguments))
423 423
424(define (manifests->jobs store manifests) 424(define (manifests->jobs store manifests systems)
425 "Return the list of jobs for the entries in MANIFESTS, a list of file 425 "Return the list of jobs for the entries in MANIFESTS, a list of file
426names." 426names, for each one of SYSTEMS."
427 (define (load-manifest manifest) 427 (define (load-manifest manifest)
428 (save-module-excursion 428 (save-module-excursion
429 (lambda () 429 (lambda ()
@@ -434,11 +434,12 @@ names."
434 (string-append (manifest-entry-name entry) "-" 434 (string-append (manifest-entry-name entry) "-"
435 (manifest-entry-version entry))) 435 (manifest-entry-version entry)))
436 436
437 (define (manifest-entry->job entry) 437 (define (manifest-entry->job entry system)
438 (let* ((obj (manifest-entry-item entry)) 438 (let* ((obj (manifest-entry-item entry))
439 (drv (parameterize ((%graft? #f)) 439 (drv (parameterize ((%graft? #f))
440 (run-with-store store 440 (run-with-store store
441 (lower-object obj)))) 441 (lower-object obj)
442 #:system system)))
442 (max-silent-time (or (and (package? obj) 443 (max-silent-time (or (and (package? obj)
443 (assoc-ref (package-properties obj) 444 (assoc-ref (package-properties obj)
444 'max-silent-time)) 445 'max-silent-time))
@@ -450,11 +451,13 @@ names."
450 #:max-silent-time max-silent-time 451 #:max-silent-time max-silent-time
451 #:timeout timeout))) 452 #:timeout timeout)))
452 453
453 (map manifest-entry->job 454 (let ((entries (delete-duplicates
454 (delete-duplicates 455 (append-map (compose manifest-entries load-manifest)
455 (append-map (compose manifest-entries load-manifest) 456 manifests)
456 manifests) 457 manifest-entry=?)))
457 manifest-entry=?))) 458 (append-map (lambda (system)
459 (map (cut manifest-entry->job <> system) entries))
460 systems)))
458 461
459(define (arguments->systems arguments) 462(define (arguments->systems arguments)
460 "Return the systems list from ARGUMENTS." 463 "Return the systems list from ARGUMENTS."
@@ -576,7 +579,7 @@ names."
576 (('manifests . rest) 579 (('manifests . rest)
577 ;; Build packages in the list of manifests. 580 ;; Build packages in the list of manifests.
578 (let ((manifests (arguments->manifests rest channels))) 581 (let ((manifests (arguments->manifests rest channels)))
579 (manifests->jobs store manifests))) 582 (manifests->jobs store manifests systems)))
580 (else 583 (else
581 (error "unknown subset" subset)))) 584 (error "unknown subset" subset))))
582 systems))) 585 systems)))