From 26867c054b363c75b262b28bb0f3e1fb0de4bc9c Mon Sep 17 00:00:00 2001 From: SoonKyu Park Date: Wed, 9 Sep 2015 15:34:45 +0900 Subject: [PATCH] Add --fail-fast option Change-Id: I7ae746caf649045571d5c2ca1498572204273bc8 --- depanneur | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/depanneur b/depanneur index 244998a..b34935c 100755 --- a/depanneur +++ b/depanneur @@ -96,6 +96,7 @@ my $deps_build = 0; # build all packages specified packaged depend o my $dryrun = 0; # just show build order and don't build actually my $help = 0; # show help information my $keepgoing = 0; # TODO: clean up +my $fail_fast = 0; # stop build immediately if one of packages fails my $clean_repos = 0; # clean corresponding local rpm repos my $create_baselibs = 0; # create baselibs packages if baselibs.conf exists my $skip_srcrpm = 0; # don't generate source rpm package if $skip_srcrpm == 1 @@ -189,6 +190,7 @@ GetOptions ( "dryrun" => \$dryrun, "help|?" => \$help, "keepgoing" => \$keepgoing, + "fail-fast" => \$fail_fast, "overwrite" => \$overwrite, "debug" => \$debug, "incremental" => \$incremental, @@ -242,6 +244,9 @@ Available options: If a package build fails, do not abort and continue building other packages in the queue. + --fail-fast + If one of packages build fails, stop whole build immediately. + --incremental Build a package from the local git tree directly. This option does not produce packages now, it is very @@ -1497,7 +1502,11 @@ sub worker_thread { if ($status == 0) { $dirty = 1; } - } + if ($fail_fast && $status == 1) { + info("build failed, exit..."); + $TERM = 1; + } + } debug("*** build $name exit with status($status), is dirty:$dirty, (worker: $thread) ***"); return $status; -- 2.34.1