hydra: Build for all the specified systems.

* build-aux/hydra/gnu-system.scm (hydra-jobs): Pick all the `system'
  keys in ARGUMENTS.
  [cross-jobs]: Turn into a procedure, with a `system' parameter.
  Build packages for all of SYSTEMS and %CROSS-TARGETS.
This commit is contained in:
Ludovic Courtès 2013-07-16 13:42:34 +02:00
parent 195e81aa52
commit 77bed84246
1 changed files with 20 additions and 11 deletions

View File

@ -95,14 +95,21 @@ SYSTEM."
(define (hydra-jobs store arguments) (define (hydra-jobs store arguments)
"Return Hydra jobs." "Return Hydra jobs."
(define system (define systems
(or (assoc-ref arguments 'system) (match (filter-map (match-lambda
(%current-system))) (('system . value)
value)
(_ #f))
arguments)
((lst ..1)
lst)
(_
(list (%current-system)))))
(define job-name (define job-name
(compose string->symbol package-full-name)) (compose string->symbol package-full-name))
(define cross-jobs (define (cross-jobs system)
(append-map (lambda (target) (append-map (lambda (target)
(map (lambda (package) (map (lambda (package)
(package-cross-job store (job-name package) (package-cross-job store (job-name package)
@ -119,10 +126,12 @@ SYSTEM."
(((_ inputs _ ...) ...) (((_ inputs _ ...) ...)
inputs)))) inputs))))
%final-inputs)))) %final-inputs))))
(fold-packages (lambda (package result) (append-map (lambda (system)
(if (member package base-packages) (fold-packages (lambda (package result)
result (if (member package base-packages)
(cons (package-job store (job-name package) result
package system) (append (package-job store (job-name package)
result))) package system)
cross-jobs))) result)))
(cross-jobs system)))
systems)))