aboutsummaryrefslogtreecommitdiff
path: root/build-aux/hydra/gnu-system.scm
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux/hydra/gnu-system.scm')
-rw-r--r--build-aux/hydra/gnu-system.scm37
1 files changed, 35 insertions, 2 deletions
diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm
index 083ff2a7cd..6aa491a274 100644
--- a/build-aux/hydra/gnu-system.scm
+++ b/build-aux/hydra/gnu-system.scm
@@ -36,10 +36,14 @@
dir)
(set! %load-path (cons dir %load-path))))))
-(use-modules (guix store)
+(use-modules (guix config)
+ (guix store)
(guix packages)
(guix derivations)
+ (guix monads)
+ ((guix licenses) #:select (gpl3+))
((guix utils) #:select (%current-system))
+ ((guix scripts system) #:select (read-operating-system))
(gnu packages)
(gnu packages gcc)
(gnu packages base)
@@ -49,6 +53,8 @@
(gnu packages compression)
(gnu packages multiprecision)
(gnu packages make-bootstrap)
+ (gnu system)
+ (gnu system vm)
(srfi srfi-1)
(srfi srfi-26)
(ice-9 match))
@@ -108,6 +114,32 @@ SYSTEM."
'("mips64el-linux-gnu"
"mips64el-linux-gnuabi64"))
+(define (qemu-jobs store system)
+ "Return a list of jobs that build QEMU images for SYSTEM."
+ (define (->alist drv)
+ `((derivation . ,drv)
+ (description . "Stand-alone QEMU image of the GNU system")
+ (long-description . "This is a demo stand-alone QEMU image of the GNU
+system.")
+ (license . ,gpl3+)
+ (home-page . ,%guix-home-page-url)
+ (maintainers . ("bug-guix@gnu.org"))))
+
+ (define (->job name drv)
+ (let ((name (symbol-append name (string->symbol ".")
+ (string->symbol system))))
+ `(,name . ,(->alist drv))))
+
+ (if (string=? system "x86_64-linux")
+ (let* ((dir (dirname (assoc-ref (current-source-location) 'filename)))
+ (file (string-append dir "/demo-os.scm"))
+ (os (read-operating-system file)))
+ (if (operating-system? os)
+ (list (->job 'qemu-image
+ (run-with-store store (system-qemu-image os))))
+ '()))
+ '()))
+
(define (hydra-jobs store arguments)
"Return Hydra jobs."
(define systems
@@ -156,7 +188,8 @@ SYSTEM."
(cons (package-job store (job-name package)
package system)
result)))
- (cross-jobs system)))
+ (append (qemu-jobs store system)
+ (cross-jobs system))))
((core)
;; Build core packages only.
(append (map (lambda (package)