Return additional detailed results file (another try)
[buildfarm-client.git] / run_build
index fe3ea9294d4af1579228297f9c3e9b44bf74b369..14842ab646cbf6dc3debb08c9d92b89635118937 100755 (executable)
--- 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.
@@ -1057,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";
 }
 
@@ -1452,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;