X-Git-Url: https://git.exim.org/buildfarm-client.git/blobdiff_plain/4f55cd78ca4ea2fc2a3793ab06d1d52c73f93840..07b2e94d2ceb0e418efe2ebdbc555c559c0aead3:/run_build?ds=sidebyside diff --git a/run_build b/run_build index 9a2fcb9..14842ab 100755 --- a/run_build +++ b/run_build @@ -36,6 +36,7 @@ our $VERSION = 'REL_0.1'; use strict; use warnings; +use 5.010; use Config; use Fcntl qw(:flock :seek); use File::Path; @@ -43,7 +44,7 @@ use File::Copy; use File::Basename; use File::Temp; use File::Spec; -use FindBin qw'$Bin'; +use FindBin qw'$RealBin'; use IO::Handle; use POSIX qw(:signal_h strftime); use Data::Dumper; @@ -71,6 +72,7 @@ BEGIN : 'xxxxxx' ); } + push @INC, getcwd(); } use EximBuild::SCM; @@ -83,14 +85,13 @@ if ($0 =~ /(.*)\.pl$/) { exec $1, @ARGV; } -die "$0: please use an umask of 022\n" - if umask > 022; +if (umask != 022) { + umask 022; + say "$0: forced umask to 022" if -t; +} my %module_hooks; my $orig_dir = getcwd(); -push @INC, $orig_dir; - -umask 022; # make sure we exit nicely on any normal interrupt # so the cleanup handler gets called. @@ -160,9 +161,6 @@ require $buildconf; #use Data::Dumper; #die Dumper \%EximBuild::conf; -# some basic checks -die "$0: need read/write permissions on '$EximBuild::conf{global_lock_dir}': $!\n" - if not -r -w $EximBuild::conf{global_lock_dir}; # Does not seem to be necessary #die "$0: permissions on '$EximBuild::conf{build_root}' should be >= 0775\n" @@ -176,14 +174,22 @@ my ( $aux_path,$trigger_exclude,$trigger_include,$secret, $keep_errs,$force_every, $make, $optional_steps, $use_vpath,$tar_log_cmd, $using_msvc, $extra_config, - $make_jobs, $core_file_glob + $make_jobs, $core_file_glob, $global_lock_dir ) =@EximBuild::conf{ qw(build_root target animal print_success aux_path trigger_exclude trigger_include secret keep_error_builds force_every make optional_steps - use_vpath tar_log_cmd using_msvc extra_config make_jobs core_file_glob) + use_vpath tar_log_cmd using_msvc extra_config make_jobs core_file_glob global_lock_dir) }; +# This should be done more generally, for all the scripts +# including the $buildconf. For now this is duplicated +# in a similiar war in run_branches. +$global_lock_dir //= $buildroot // die "$0: need global_lock_dir\n"; + +die "$0: need read/write permissions on '$global_lock_dir': $!\n" + if not -r -w $global_lock_dir; + #default is no parallel build $make_jobs ||= 1; @@ -1052,10 +1058,13 @@ sub make_test } } writelog('test',\@makeout); + send_result('Test',$status,\@makeout) if $status; + + @makeout = `cat $exim/test/run-summary.log`; + writelog('test-results',\@makeout); + print "======== make test logs ===========\n",@makeout if ($verbose > 1); - - send_result('Test',$status,\@makeout) if $status; $steps_completed .= " Test"; } @@ -1447,9 +1456,10 @@ sub get_script_config_dump delete $conf->{secret}; if ($conf->{scm} eq 'git') { - chomp($conf->{farm}{revision} = `git -C $Bin describe --tags --always --dirty=+`); + chomp($conf->{farm}{revision} = `cd $RealBin && git describe --tags --always --dirty=+`); $conf->{farm}{cwd} = getcwd(); - $conf->{farm}{bindir} = $Bin; + $conf->{farm}{bindir} = $RealBin; + $conf->{farm}{perl} = $^V; } $Data::Dumper::Sortkeys = 1;