From 77f6fa772ceb6b348ec062fa1aeb0884a11b152f Mon Sep 17 00:00:00 2001 From: David C W Brown Date: Mon, 27 Jun 2016 20:41:49 +0100 Subject: [PATCH 1/3] Working post push hook now? --- src/tools/testcoordinator/postpush.pl | 30 ++++++++++++++++++++------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/testcoordinator/postpush.pl index 3eb07825..f0edcec7 100644 --- a/src/tools/testcoordinator/postpush.pl +++ b/src/tools/testcoordinator/postpush.pl @@ -9,6 +9,14 @@ use POSIX "strftime"; use CGI qw(:standard escapeHTML); use JSON; +sub writelog { + my ($msg) = @_; + + open(LOG, ">>/tmp/postpush.log") or die "Could not create postpush.log"; + flock(LOG, 2) or die "Could not lock postpush.log"; + print LOG sprintf("%s %s\n", strftime("%Y/%m/%d %H.%M.%S", localtime), $msg); + close(LOG); +} my $postdata = from_json(param('POSTDATA')); @@ -19,16 +27,22 @@ my $name = $postdata->{'head_commit'}->{'author'}->{'name'}; my $branch = $ref; $branch =~ s'^.*\/''; my $repo = $url; $repo =~ s'^.*\/''; +#my $repo="repo"; my $branch="branch"; my $name="name"; + +writelog "Post push github web hook for repository $repo, branch $branch, name $name."; + +my $child = fork; +if (not defined $child) {die "Fork failed.";} +if ($child) { + # parent process + writelog "Started ssh, pid = $child."; +} else { + # child process + exec 'ssh root@oberon "perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &"'; + exit; +} print header(), start_html("Vishap Oberon github post push web hook."), p("Repository $repo, branch $branch, name $name."), end_html(); - - -open(LOG, ">>/tmp/postpush.log") or die "Could not create postpush.log"; -flock(LOG, 2) or die "Could not lock postpush.log"; -printf LOG strftime("%Y/%m/%d %H.%M.%S", localtime), " Repository $repo, branch $branch, name $name.\n"; -close(LOG); - -system "ssh root@oberon perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &"; From 99bd3b3105fb6d8d2817ea87166ba9b6e7694632 Mon Sep 17 00:00:00 2001 From: David C W Brown Date: Mon, 27 Jun 2016 20:46:43 +0100 Subject: [PATCH 2/3] Checkin real (not merged) postpush.pl --- src/tools/testcoordinator/postpush.pl | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/testcoordinator/postpush.pl index 67be27ab..25bb2a89 100644 --- a/src/tools/testcoordinator/postpush.pl +++ b/src/tools/testcoordinator/postpush.pl @@ -18,17 +18,6 @@ sub writelog { close(LOG); } -sub writelog { - my ($msg) = @_; - - open(LOG, ">>/tmp/postpush.log") or die "Could not create postpush.log"; - flock(LOG, 2) or die "Could not lock postpush.log"; - print LOG sprintf("%s %s\n", strftime("%Y/%m/%d %H.%M.%S", localtime), $msg); - close(LOG); -} - -writelog "Postpush."; - my $postdata = from_json(param('POSTDATA')); my $url = $postdata->{'repository'}->{'url'}; @@ -40,9 +29,9 @@ my $repo = $url; $repo =~ s'^.*\/''; #my $repo="repo"; my $branch="branch"; my $name="name"; -<<<<<<< HEAD writelog "Post push github web hook for repository $repo, branch $branch, name $name."; + my $child = fork; if (not defined $child) {die "Fork failed.";} if ($child) { @@ -53,18 +42,8 @@ if ($child) { exec 'ssh root@oberon "perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &"'; exit; } -======= -writelog "Repository $repo, branch $branch, name $name."; ->>>>>>> 3a17e1a65685db28158fd65fff295e93a1bec31f print header(), start_html("Vishap Oberon github post push web hook."), p("Repository $repo, branch $branch, name $name."), end_html(); -<<<<<<< HEAD -======= - -system 'ssh root@oberon perl vishap/voc/src/tools/testcoordinator/buildall.pl >/tmp/buildall.log &'; - -writelog "Buildall triggered." ->>>>>>> 3a17e1a65685db28158fd65fff295e93a1bec31f From 92365d501cc5309477b03b4b3b62eabfb302125e Mon Sep 17 00:00:00 2001 From: David C W Brown Date: Mon, 27 Jun 2016 21:01:56 +0100 Subject: [PATCH 3/3] Add passing build extraction script. --- src/tools/testcoordinator/buildall.pl | 0 src/tools/testcoordinator/passes.pl | 17 +++++++++++++++++ src/tools/testcoordinator/postpush.pl | 0 3 files changed, 17 insertions(+) mode change 100644 => 100755 src/tools/testcoordinator/buildall.pl create mode 100755 src/tools/testcoordinator/passes.pl mode change 100644 => 100755 src/tools/testcoordinator/postpush.pl diff --git a/src/tools/testcoordinator/buildall.pl b/src/tools/testcoordinator/buildall.pl old mode 100644 new mode 100755 diff --git a/src/tools/testcoordinator/passes.pl b/src/tools/testcoordinator/passes.pl new file mode 100755 index 00000000..c7ca9bde --- /dev/null +++ b/src/tools/testcoordinator/passes.pl @@ -0,0 +1,17 @@ +#!perl -w +use strict; +use warnings; +use POSIX "strftime"; + +# Now parse the combined logs extracting build pass messages +# lub32 20.47.55 --- Branch v2docs ubuntu gcc ILP32 confidence tests passed --- + +open(my $buildlog, "log/buildpasses.log") // die "Could not create buildpasses.log."; +while (<$buildlog>) { + if (/ --- Branch .* confidence tests passed ---/) { + print $passes $_; + } +} +close($buildlog); +close($passes); diff --git a/src/tools/testcoordinator/postpush.pl b/src/tools/testcoordinator/postpush.pl old mode 100644 new mode 100755