diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2023-08-21 15:37:11 +0200 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2023-08-21 16:16:47 +0200 |
| commit | 97f062f33c4243fb1fcb53e0806bdf6cd08ac9d6 (patch) | |
| tree | 708dae07c1476ef926931e75851747f2535d52d0 /gnu | |
| parent | df2117b8e0e9a35ef8be7f122a783190cafed669 (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.scm | 23 |
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 |
| 426 | names." | 426 | names, 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))) |
