diff --git a/doc/guix.texi b/doc/guix.texi index 592ec3cb1d..a3d751a296 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -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 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 @itemx -n Do not build the derivations. diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 9193ad32b2..7ca2c6ebc8 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2013 Mark H Weaver ;;; ;;; This file is part of GNU Guix. @@ -153,6 +153,8 @@ options handled by 'set-build-options-from-command-line', and listed in (display (_ " -K, --keep-failed keep build tree of failed builds")) (display (_ " + -k, --keep-going keep going when some of the derivations fail")) + (display (_ " -n, --dry-run do not build the derivations")) (display (_ " --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. (set-build-options store #:keep-failed? (assoc-ref opts 'keep-failed?) + #:keep-going? (assoc-ref opts 'keep-going?) #:rounds (assoc-ref opts 'rounds) #:build-cores (or (assoc-ref opts 'cores) 0) #: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 (alist-cons 'keep-failed? #t result) 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 (lambda (opt name arg result . rest) (apply values