~ruther/guix-local

10d86d54f05ab8e1ed98cd2f29af9f1864fc7316 — Ludovic Courtès 11 years ago fc91c17
hydra: Build the installation image.

* build-aux/hydra/gnu-system.scm (demo-os): New procedure.
  (qemu-jobs): Build for both x86_64-linux and i686-linux.  Add
  'usb-image' job that builds INSTALLATION-OS.
1 files changed, 21 insertions(+), 11 deletions(-)

M build-aux/hydra/gnu-system.scm
M build-aux/hydra/gnu-system.scm => build-aux/hydra/gnu-system.scm +21 -11
@@ 55,6 55,7 @@
             (gnu packages make-bootstrap)
             (gnu system)
             (gnu system vm)
             (gnu system install)
             (srfi srfi-1)
             (srfi srfi-26)
             (ice-9 match))


@@ 114,6 115,12 @@ SYSTEM."
  '("mips64el-linux-gnu"
    "mips64el-linux-gnuabi64"))

(define (demo-os)
  "Return the \"demo\" 'operating-system' structure."
  (let* ((dir  (dirname (assoc-ref (current-source-location) 'filename)))
         (file (string-append dir "/demo-os.scm")))
    (read-operating-system file)))

(define (qemu-jobs store system)
  "Return a list of jobs that build QEMU images for SYSTEM."
  (define (->alist drv)


@@ 130,17 137,20 @@ system.")
                               (string->symbol system))))
      `(,name . ,(cut ->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))
             (size (* 1400 (expt 2 20))))         ; 1.4GiB
        (if (operating-system? os)
            (list (->job 'qemu-image
                         (run-with-store store
                           (system-qemu-image os
                                              #:disk-image-size size))))
            '()))
  (define MiB
    (expt 2 20))

  (if (member system '("x86_64-linux" "i686-linux"))
      (list (->job 'qemu-image
                   (run-with-store store
                     (system-qemu-image (demo-os)
                                        #:disk-image-size
                                        (* 1400 MiB)))) ; 1.4 GiB
            (->job 'usb-image
                   (run-with-store store
                     (system-disk-image installation-os
                                        #:disk-image-size
                                        (* 700 MiB)))))
      '()))

(define (hydra-jobs store arguments)