mirror of https://notabug.org/mthl/cuirass.git
cuirass: Add "--load-path" option.
* bin/cuirass.in (%options): Add "--load-path" and "-L" command line options. (show-help): Adapt. * src/cuirass/base.scm (%guix-package-path): New parameter. (set-guix-package-path!): New procedure. (evaluate): Call "evaluate" script with '%guix-package-path'. * bin/evaluate.in (main): Match 'guix-package-path' command line argument and handle it. Signed-off-by: Mathieu Lirzin <mthl@gnu.org>improve-build-parallelism
parent
4ca0c93875
commit
5127c6797c
|
@ -7,6 +7,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@"
|
|||
!#
|
||||
;;;; cuirass -- continuous integration tool
|
||||
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of Cuirass.
|
||||
;;;
|
||||
|
@ -34,6 +35,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@"
|
|||
|
||||
--one-shot Evaluate and build jobs only once
|
||||
--cache-directory=DIR Use DIR for storing repository data
|
||||
-L --load-path=DIR Prepend DIR to Guix package module search path.
|
||||
-S --specifications=SPECFILE
|
||||
Add specifications from SPECFILE to database.
|
||||
-D --database=DB Use DB to store build results.
|
||||
|
@ -48,6 +50,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@"
|
|||
(define %options
|
||||
'((one-shot (value #f))
|
||||
(cache-directory (value #t))
|
||||
(load-path (single-char #\L) (value #t))
|
||||
(specifications (single-char #\S) (value #t))
|
||||
(database (single-char #\D) (value #t))
|
||||
(port (single-char #\p) (value #t))
|
||||
|
@ -68,6 +71,8 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@"
|
|||
(%package-database (option-ref opts 'database (%package-database)))
|
||||
(%package-cachedir
|
||||
(option-ref opts 'cache-directory (%package-cachedir)))
|
||||
(%guix-package-path
|
||||
(option-ref opts 'load-path (%guix-package-path)))
|
||||
(%use-substitutes? (option-ref opts 'use-substitutes #f)))
|
||||
(cond
|
||||
((option-ref opts 'help #f)
|
||||
|
|
|
@ -8,6 +8,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@"
|
|||
;;;; evaluate -- convert a specification to a job list
|
||||
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of Cuirass.
|
||||
;;;
|
||||
|
@ -32,7 +33,7 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@"
|
|||
|
||||
(define* (main #:optional (args (command-line)))
|
||||
(match args
|
||||
((command load-path cachedir specstr database)
|
||||
((command load-path guix-package-path cachedir specstr database)
|
||||
;; Load FILE, a Scheme file that defines Hydra jobs.
|
||||
(let ((%user-module (make-fresh-user-module))
|
||||
(spec (with-input-from-string specstr read))
|
||||
|
@ -58,6 +59,8 @@ exec ${GUILE:-@GUILE@} --no-auto-compile -e main -s "$0" "$@"
|
|||
(exit 1)))
|
||||
(parameterize ((%package-database database)
|
||||
(%use-substitutes? (assoc-ref spec #:use-substitutes?)))
|
||||
(unless (string-null? guix-package-path)
|
||||
(set-guix-package-path! guix-package-path))
|
||||
;; Call the entry point of FILE and print the resulting job sexp.
|
||||
(let* ((proc-name (assq-ref spec #:proc))
|
||||
(proc (module-ref %user-module proc-name))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; base.scm -- Cuirass base module
|
||||
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of Cuirass.
|
||||
;;;
|
||||
|
@ -20,6 +21,7 @@
|
|||
(define-module (cuirass base)
|
||||
#:use-module (cuirass database)
|
||||
#:use-module (cuirass utils)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix derivations)
|
||||
#:use-module (guix store)
|
||||
#:use-module (ice-9 format)
|
||||
|
@ -33,7 +35,9 @@
|
|||
evaluate
|
||||
build-packages
|
||||
process-specs
|
||||
set-guix-package-path!
|
||||
;; Parameters.
|
||||
%guix-package-path
|
||||
%package-cachedir
|
||||
%use-substitutes?))
|
||||
|
||||
|
@ -114,6 +118,7 @@ if required."
|
|||
(string-append (%package-cachedir) "/"
|
||||
(assq-ref spec #:name) "/"
|
||||
(assq-ref spec #:load-path))
|
||||
(%guix-package-path)
|
||||
(%package-cachedir)
|
||||
(object->string spec)
|
||||
(%package-database)))
|
||||
|
@ -174,3 +179,20 @@ if required."
|
|||
(db-add-stamp db spec commit)))
|
||||
|
||||
(for-each process jobspecs))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Guix package path.
|
||||
;;;
|
||||
|
||||
(define %guix-package-path
|
||||
;; Extension of package modules search path.
|
||||
(make-parameter ""))
|
||||
|
||||
(define (set-guix-package-path! path)
|
||||
"Use PATH to find custom packages not defined in (gnu packages ...)
|
||||
namespace or not already present in current Guile load paths."
|
||||
(%package-module-path (cons path (%package-module-path)))
|
||||
(%patch-path (cons path (%patch-path)))
|
||||
(set! %load-path (cons path %load-path))
|
||||
(set! %load-compiled-path (cons path %load-compiled-path)))
|
||||
|
|
Loading…
Reference in New Issue