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