guix build: Add '--keep-going'.

* guix/scripts/build.scm (show-build-options-help)
(%standard-build-options): Add --keep-going.
* guix/scripts/build.scm (set-build-options-from-command-line): Honor
it.
* doc/guix.texi (Invoking guix build): Document it.
This commit is contained in:
Ludovic Courtès 2016-01-19 21:57:40 +01:00
parent 0e510971c3
commit f495301902
2 changed files with 17 additions and 1 deletions

@ -3973,6 +3973,14 @@ Keep the build tree of failed builds. Thus, if a build fail, its build
tree is kept under @file{/tmp}, in a directory whose name is shown at tree is kept under @file{/tmp}, in a directory whose name is shown at
the end of the build log. This is useful when debugging build issues. the end of the build log. This is useful when debugging build issues.
@item --keep-going
@itemx -k
Keep going when some of the derivations fail to build; return only once
all the builds have either completed or failed.
The default behavior is to stop as soon as one of the specified
derivations has failed.
@item --dry-run @item --dry-run
@itemx -n @itemx -n
Do not build the derivations. Do not build the derivations.

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -153,6 +153,8 @@ options handled by 'set-build-options-from-command-line', and listed in
(display (_ " (display (_ "
-K, --keep-failed keep build tree of failed builds")) -K, --keep-failed keep build tree of failed builds"))
(display (_ " (display (_ "
-k, --keep-going keep going when some of the derivations fail"))
(display (_ "
-n, --dry-run do not build the derivations")) -n, --dry-run do not build the derivations"))
(display (_ " (display (_ "
--fallback fall back to building when the substituter fails")) --fallback fall back to building when the substituter fails"))
@ -183,6 +185,7 @@ options handled by 'set-build-options-from-command-line', and listed in
;; TODO: Add more options. ;; TODO: Add more options.
(set-build-options store (set-build-options store
#:keep-failed? (assoc-ref opts 'keep-failed?) #:keep-failed? (assoc-ref opts 'keep-failed?)
#:keep-going? (assoc-ref opts 'keep-going?)
#:rounds (assoc-ref opts 'rounds) #:rounds (assoc-ref opts 'rounds)
#:build-cores (or (assoc-ref opts 'cores) 0) #:build-cores (or (assoc-ref opts 'cores) 0)
#:max-build-jobs (or (assoc-ref opts 'max-jobs) 1) #:max-build-jobs (or (assoc-ref opts 'max-jobs) 1)
@ -214,6 +217,11 @@ options handled by 'set-build-options-from-command-line', and listed in
(apply values (apply values
(alist-cons 'keep-failed? #t result) (alist-cons 'keep-failed? #t result)
rest))) rest)))
(option '(#\k "keep-going") #f #f
(lambda (opt name arg result . rest)
(apply values
(alist-cons 'keep-going? #t result)
rest)))
(option '("rounds") #t #f (option '("rounds") #t #f
(lambda (opt name arg result . rest) (lambda (opt name arg result . rest)
(apply values (apply values