#:key source commit)
"Return a list of jobs for the system tests."
(define (->job test)
- (parameterize ((current-guix-package
- (channel-source->package source #:commit commit)))
- (let ((name (string-append "test." (system-test-name test)
- "." system))
- (drv (run-with-store store
- (mbegin %store-monad
- (set-current-system system)
- (set-grafting #f)
- (set-guile-for-build (default-guile))
- (system-test-value test)))))
+ (let ((name (string-append "test." (system-test-name test)
+ "." system))
+ (drv (run-with-store store
+ (mbegin %store-monad
+ (set-current-system system)
+ (set-grafting #f)
+ (set-guile-for-build (default-guile))
+ (system-test-value test)))))
- (derivation->job name drv))))
+ (derivation->job name drv)))
(if (member system %guix-system-supported-systems)
;; Override the value of 'current-guix' used by system tests. Using a
;; channel instance makes tests that rely on 'current-guix' less
;; expensive. It also makes sure we get a valid Guix package when this
;; code is not running from a checkout.
- (map ->job (all-system-tests))
+ (parameterize ((current-guix-package
+ (channel-source->package source #:commit commit)))
+ (map ->job (all-system-tests)))
'()))
(define (tarball-jobs store system)
(>>= (profile-derivation (packages->manifest (list guix)))
(lambda (profile)
(self-contained-tarball "guix-binary" profile
+ #:profile-name "current-guix"
#:localstatedir? #t
#:compressor
(lookup-compressor "xz")))))
(package->job store package system))))
(append
(filter-map job all)
- (image-jobs store system)
- (system-test-jobs store system
- #:source source
- #:commit commit)
- (tarball-jobs store system)
(cross-jobs store system))))
('core
;; Build core packages only.
(let ((hello (specification->package "hello")))
(list (package-job store (job-name hello)
hello system))))
+ ('images
+ ;; Build Guix System images only.
+ (image-jobs store system))
+ ('system-tests
+ ;; Build Guix System tests only.
+ (system-test-jobs store system
+ #:source source
+ #:commit commit))
+ ('tarball
+ ;; Build Guix tarball only.
+ (tarball-jobs store system))
(('channels . channels)
;; Build only the packages from CHANNELS.
(let ((all (all-packages)))