From 35d26e4034d10592401c25801290e2b7fb111198 Mon Sep 17 00:00:00 2001 From: Pascal Terjan Date: Thu, 20 Oct 2016 15:18:25 +0100 Subject: Only mandatory arches are fatal Currently any previous failures casues to force fail anything succeeding later. --- NEWS | 2 ++ lib/Iurt/Queue.pm | 11 ++++++++++- ulri | 5 ++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index 8869cea..dff2124 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,5 @@ +- ulri: only fail succesful arches if previous failure was from a mandatory + arch - emi: skip all posts for non finishers instead of hardcoding a list 0.6.27 diff --git a/lib/Iurt/Queue.pm b/lib/Iurt/Queue.pm index f6907e6..3f552b9 100644 --- a/lib/Iurt/Queue.pm +++ b/lib/Iurt/Queue.pm @@ -12,6 +12,7 @@ use strict; our @EXPORT = qw( get_upload_tree_state cleanup_failed_build + check_if_mandatory_arch_failed ); sub apply_to_upload_tree { @@ -52,7 +53,15 @@ sub apply_to_upload_tree { } } } - + +sub check_if_mandatory_arch_failed { + my ($done_dir, $prefix, $ent, $config) = @_; + my $mandatory_arch = get_mandatory_arch($config, $ent->{target}); + foreach my $arch (@$mandatory_arch) { + return 1 if -f "${done_dir}/${prefix}_${arch}.fail"; + } +} + sub cleanup_failed_build { my ($todo_dir, $done_dir, $fail_dir, $prefix, $ent, $arch, $config) = @_; diff --git a/ulri b/ulri index 2e29418..1df576f 100755 --- a/ulri +++ b/ulri @@ -36,7 +36,7 @@ use MDK::Common qw(any cat_ if_ find); use Iurt::Config qw(config_usage get_date config_init get_author_email check_arch check_noarch); use Iurt::File qw(create_file); use Iurt::Process qw(check_pid); -use Iurt::Queue qw(cleanup_failed_build get_upload_tree_state); +use Iurt::Queue qw(check_if_mandatory_arch_failed cleanup_failed_build get_upload_tree_state); use Iurt::Mail qw(sendmail); use Iurt::Util qw(plog_init plog ssh_setup ssh sout sget sput); use Iurt::Ulri qw(build_package warn_about_failure); @@ -384,8 +384,7 @@ foreach my $prefix (keys %pkg_tree) { make_path("$done_dir/$prefix"); sget($remote, "$prefix_dir/log/*", "$done_dir/$prefix"); ssh($remote, "rm -rf $prefix_dir"); - if (-d "$fail_dir/$prefix") { - # Other arch had failed + if (check_if_mandatory_arch_failed($done_dir, $prefix, $ent, $config)) { cleanup_failed_build($todo_dir, $done_dir, $fail_dir, $prefix, $ent, $arch, $config); } else { $something_finished = 1; -- cgit v1.2.1