summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.yml7
-rw-r--r--lib/jitterbug/Builder.pm17
-rw-r--r--scripts/build-pass.sh14
3 files changed, 37 insertions, 1 deletions
diff --git a/config.yml b/config.yml
index a0095fe..99ef6d6 100644
--- a/config.yml
+++ b/config.yml
@@ -24,8 +24,15 @@ jitterbug:
on_failure_subject_prefix: "[jitterbug] FAIL "
on_failure_header:
on_failure_footer:
+ on_pass: ./scripts/build-passed.sh
+ on_pass_cc_email: alice@example.com
+ on_pass_subject_prefix: "[jitterbug] PASS "
+ on_pass_from_email: donotreply@example.com
+ on_pass_header:
+ on_pass_footer:
options:
perlbrew: 1
+ email_on_pass: 0
plugins:
DBIC:
diff --git a/lib/jitterbug/Builder.pm b/lib/jitterbug/Builder.pm
index 26b25e5..4d439ec 100644
--- a/lib/jitterbug/Builder.pm
+++ b/lib/jitterbug/Builder.pm
@@ -142,7 +142,7 @@ sub run_task {
my $output = $lines;
my $sha = $desc->{'id'};
my $on_failure = $conf->{'jitterbug'}{'build_process'}{'on_failure'};
- my $on_failure_cc_email = $conf->{'jitterbug'}{'build_process'}{'on_failure_email'};
+ my $on_failure_cc_email = $conf->{'jitterbug'}{'build_process'}{'on_failure_cc_email'};
$message =~ s/'/\\'/g; $commiter =~ s/'/\\'/g; $output =~ s/'/\\'/g;
my $failure_cmd = sprintf("%s '%s' %s '%s' '%s' %s %s", $on_failure, $commiter, $task->project->name, $message, $output, $sha, $on_failure_cc_email);
@@ -156,6 +156,21 @@ sub run_task {
} else {
system($failure_cmd);
}
+ } elsif ($conf->{'options'}{'email_on_pass'}) {
+ $result = "PASS";
+ my $message = $desc->{'message'};
+ my $commiter = $desc->{'author'}{'email'};
+ my $output = $lines;
+ my $sha = $desc->{'id'};
+ my $on_pass = $conf->{'jitterbug'}{'build_process'}{'on_pass'};
+ my $on_pass_cc_email = $conf->{'jitterbug'}{'build_process'}{'on_pass_cc_email'};
+
+ $message =~ s/'/\\'/g; $commiter =~ s/'/\\'/g; $output =~ s/'/\\'/g;
+ my $pass_cmd = sprintf("%s '%s' %s '%s' '%s' %s %s", $on_pass, $commiter, $task->project->name, $message, $output, $sha, $on_pass_cc_email);
+ debug("Running pass command: $pass_cmd");
+
+ # TODO: create perl pass emailer
+ system($pass_cmd);
}
$desc->{'build'}{'version'}{$name} = $result;
close $fh;
diff --git a/scripts/build-pass.sh b/scripts/build-pass.sh
new file mode 100644
index 0000000..9f6f2b8
--- /dev/null
+++ b/scripts/build-pass.sh
@@ -0,0 +1,14 @@
+COMMITER=$1
+PROJECT=$2
+MESSAGE=$3
+OUTPUT=$4
+SHA=$5
+CC_EMAIL=$6
+
+echo "
+Message:
+$MESSAGE
+
+Test Output:
+$OUTPUT
+" | mail -c "$CC_EMAIL" -s "[jitterbug] PASS $PROJECT @ $SHA" $COMMITER