summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-07-16 13:42:34 +0200
committerLudovic Courtès <ludo@gnu.org>2013-07-16 13:42:34 +0200
commit77bed84246b82c933e76e34bbdae59982097f7c8 (patch)
tree925373e90b8b8e569773cc8b43c769e8a4d04635
parent195e81aa5260bab340cbafe42bc3192b23d38505 (diff)
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.
-rw-r--r--build-aux/hydra/gnu-system.scm31
1 files changed, 20 insertions, 11 deletions
diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm
index 6518f2b4aa..16fa4941c1 100644
--- a/build-aux/hydra/gnu-system.scm
+++ b/build-aux/hydra/gnu-system.scm
@@ -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)))