From 8443ce457031e90025650264983ce06a18dfe645 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Mon, 23 May 2011 16:48:33 -0700 Subject: Factor out git logic to separate function --- lib/jitterbug/Builder.pm | 51 ++++++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 23 deletions(-) (limited to 'lib/jitterbug') diff --git a/lib/jitterbug/Builder.pm b/lib/jitterbug/Builder.pm index eb9f924..a70e560 100644 --- a/lib/jitterbug/Builder.pm +++ b/lib/jitterbug/Builder.pm @@ -80,30 +80,9 @@ sub sleep { sleep $interval; } -sub run_task { - my ($self,$task) = @_; - - my $desc = JSON::decode_json( $task->commit->content ); - my $conf = $self->{'conf'}; - my $buildconf = $conf->{'jitterbug'}{'build_process'}; - my $project = $task->project; - - my $dt = DateTime->now(); - $task->update({started_when => $dt}); - $desc->{'build'}{'start_time'} = $dt->epoch; - debug("Build Start"); +sub _prepare_git_repo { + my ($self, $task, $buildconf, $build_dir) = @_; - my $report_path = dir( - $conf->{'jitterbug'}{'reports'}{'dir'}, - $project->name, - $task->commit->sha256, - ); - my $dir = $conf->{'jitterbug'}{'build'}{'dir'}; - mkdir $dir unless -d $dir; - - my $build_dir = dir($dir, $project->name); - - my $r; my $repo = $task->project->url; unless ($buildconf->{reuse_repo}) { debug("Removing $build_dir"); @@ -144,6 +123,32 @@ sub run_task { # TODO: this may fail on non-unixy systems system("git checkout " . $task->commit->sha256 . "&>/dev/null"); chdir $pwd; +} + +sub run_task { + my ($self,$task) = @_; + + my $desc = JSON::decode_json( $task->commit->content ); + my $conf = $self->{'conf'}; + my $buildconf = $conf->{'jitterbug'}{'build_process'}; + my $project = $task->project; + + my $dt = DateTime->now(); + $task->update({started_when => $dt}); + $desc->{'build'}{'start_time'} = $dt->epoch; + debug("Build Start"); + + my $report_path = dir( + $conf->{'jitterbug'}{'reports'}{'dir'}, + $project->name, + $task->commit->sha256, + ); + my $dir = $conf->{'jitterbug'}{'build'}{'dir'}; + mkdir $dir unless -d $dir; + + my $build_dir = dir($dir, $project->name); + + $self->_prepare_git_repo($task, $buildconf, $build_dir); my $builder = $conf->{'jitterbug'}{'projects'}{$project->name}{'builder'} || $conf->{'jitterbug'}{'build_process'}{'builder'}; -- cgit 1.4.1