diff options
author | Jonathan "Duke" Leto <jonathan@leto.net> | 2011-01-19 13:04:42 -0800 |
---|---|---|
committer | Jonathan "Duke" Leto <jonathan@leto.net> | 2011-01-19 13:04:42 -0800 |
commit | 05c0a17eabb8cb52535ca1ae30fcf8ce0906f5c3 (patch) | |
tree | 7a782c216051e366c215ad902571d34cf2939a17 /lib/jitterbug/Builder.pm | |
parent | Attempt to fix the mangled build failure email bug (diff) | |
parent | Fix a jitterbug::Emailer test (diff) | |
download | jitterbug-05c0a17eabb8cb52535ca1ae30fcf8ce0906f5c3.tar.gz |
Merge branch 'refactor_builder'
Conflicts: config.yml lib/jitterbug/Builder.pm scripts/build-failed.sh
Diffstat (limited to '')
-rw-r--r-- | lib/jitterbug/Builder.pm | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/lib/jitterbug/Builder.pm b/lib/jitterbug/Builder.pm index 32bc51c..a836f70 100644 --- a/lib/jitterbug/Builder.pm +++ b/lib/jitterbug/Builder.pm @@ -113,7 +113,9 @@ sub run_task { my $builder = $conf->{'jitterbug'}{'build_process'}{'builder'}; - my $builder_command = "$builder $build_dir $report_path"; + my $perlbrew = $conf->{'options'}{'perlbrew'} || 1; + + my $builder_command = "$builder $build_dir $report_path $perlbrew"; debug("Going to run builder : $builder_command"); my $res = `$builder_command`; @@ -136,15 +138,23 @@ sub run_task { $result = "FAIL"; my $message = $desc->{'message'}; my $commiter = $desc->{'author'}{'email'}; - my $output = "Build failed"; + my $output = $lines; my $sha = $desc->{'id'}; my $on_failure = $conf->{'jitterbug'}{'build_process'}{'on_failure'}; - my $on_failure_email = $conf->{'jitterbug'}{'build_process'}{'on_failure_email'}; + my $on_failure_cc_email = $conf->{'jitterbug'}{'build_process'}{'on_failure_email'}; $message =~ s/'/\\'/g; $commiter =~ s/'/\\'/g; $output =~ s/'/\\'/g; - my $failure_cmd = qq{$on_failure '$commiter' '$message' '$output' $sha $on_failure_email}; + my $failure_cmd = sprintf("%s '%s' %s '%s' '%s' %s %s", $on_failure, $commiter, $task->project->name, $message, $output, $sha, $on_failure_cc_email); debug("Running failure command: $failure_cmd"); - `$failure_cmd`; + + # does it look like a module name? + if ($on_failure =~ /::/) { + # we should do some error checking here + eval "require $on_failure"; + $on_failure->new($conf,$task,$output)->run; + } else { + system($failure_cmd); + } } $desc->{'build'}{'version'}{$name} = $result; close $fh; |