hydra: Support a 'subset' argument.

* build-aux/hydra/gnu-system.scm (%core-packages): New variable.
  (%packages-to-cross-build): Make an alias for %CORE-PACKAGES.
  (hydra-jobs): Check for the 'subset' argument, and honor it for values
  "all" and "core".
This commit is contained in:
Ludovic Courtès 2013-09-08 12:10:25 +02:00
parent e7b385008c
commit 6bf25b7b05

View file

@ -79,7 +79,7 @@ (define (package-cross-job store job-name package target system)
,(cute package->alist store package system
(cut package-cross-derivation <> <> target <>))))
(define %packages-to-cross-build
(define %core-packages
(list gmp mpfr mpc coreutils findutils diffutils patch sed grep
gawk gettext hello guile-2.0
%bootstrap-binaries-tarball
@ -89,6 +89,9 @@ (define %packages-to-cross-build
%guile-bootstrap-tarball
%bootstrap-tarballs))
(define %packages-to-cross-build
%core-packages)
(define %cross-targets
'("mips64el-linux-gnu"
"mips64el-linux-gnuabi64"))
@ -106,6 +109,11 @@ (define systems
(_
(list (%current-system)))))
(define subset
(match (assoc-ref arguments 'subset)
("core" 'core) ; only build core packages
(_ 'all))) ; build everything
(define job-name
(compose string->symbol package-full-name))
@ -127,11 +135,23 @@ (define (cross-jobs system)
inputs))))
%final-inputs))))
(append-map (lambda (system)
(fold-packages (lambda (package result)
(if (member package base-packages)
result
(cons (package-job store (job-name package)
package system)
result)))
(cross-jobs system)))
(case subset
((all)
;; Build everything.
(fold-packages (lambda (package result)
(if (member package base-packages)
result
(cons (package-job store (job-name package)
package system)
result)))
(cross-jobs system)))
((core)
;; Build core packages only.
(append (map (lambda (package)
(package-job store (job-name package)
package system))
%core-packages)
(cross-jobs system)))
(else
(error "unknown subset" subset))))
systems)))