diff options
Diffstat (limited to 'gnu/ci.scm')
| -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))) |
