diff options
author | Ludovic Courtès <ludo@gnu.org> | 2012-11-25 17:12:46 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2012-11-25 17:12:46 +0100 |
commit | bdd7eb270d8fb7e05083a5ff5bb5c13473a6494d (patch) | |
tree | 839a71e97545864e79150b302fe92f0ba9ca5a80 /hydra.scm | |
parent | 52bda18abf6e24b1f49c00e3a7523ee61f25439b (diff) | |
download | guix-bdd7eb270d8fb7e05083a5ff5bb5c13473a6494d.tar.gz |
build: Have `hydra.scm' return one job per package.
* hydra.scm (hydra-jobs): Return one job for each non-bootstrap package.
Diffstat (limited to 'hydra.scm')
-rw-r--r-- | hydra.scm | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/hydra.scm b/hydra.scm index 312358b9f9..537e26aa84 100644 --- a/hydra.scm +++ b/hydra.scm @@ -25,7 +25,9 @@ (guix packages) ((guix utils) #:select (%current-system)) (distro) + (distro packages base) (distro packages guile) + (srfi srfi-1) (srfi srfi-26) (ice-9 match)) @@ -40,7 +42,8 @@ (description . ,(package-synopsis package)) (long-description . ,(package-description package)) (license . ,(package-license package)) - (maintainers . ("gnu-system-discuss@gnu.org")))) + (home-page . ,(package-home-page package)) + (maintainers . ("bug-guix@gnu.org")))) (define (package-job store job-name package system) "Return a job called JOB-NAME that builds PACKAGE on SYSTEM." @@ -52,14 +55,21 @@ (or (assoc-ref arguments system) (%current-system))) - (map (match-lambda - ((job-name (? package? package)) - (package-job store job-name package system)) - ((job-name (? string? name)) - (package-job store job-name - (car (find-packages-by-name name)) - system))) - `((hello "hello") - (gmp "gmp") - (guile_2_0 ,guile-2.0) - (guile_1_8 ,guile-1.8)))) + ;; Return one job for each package, except bootstrap packages. + (let ((base-packages (delete-duplicates + (append-map (match-lambda + ((_ package _ ...) + (match (package-transitive-inputs + package) + (((_ inputs _ ...) ...) + inputs)))) + %final-inputs)))) + (fold-packages (lambda (package result) + (if (member package base-packages) + result + (let ((name (string->symbol + (package-full-name package)))) + (cons (package-job store name package + system) + result)))) + '()))) |