diff --git a/src/lib/Hydra/Controller/Build.pm b/src/lib/Hydra/Controller/Build.pm index cba1f93d..f9d34628 100644 --- a/src/lib/Hydra/Controller/Build.pm +++ b/src/lib/Hydra/Controller/Build.pm @@ -71,7 +71,7 @@ sub build_GET { $c->stash->{cachedBuild} = $cachedBuildStep->build if defined $cachedBuildStep; } - if ($build->finished && 0) { + if ($build->finished) { $c->stash->{prevBuilds} = [$c->model('DB::Builds')->search( { project => $c->stash->{project}->name , jobset => $c->stash->{build}->jobset->name @@ -399,6 +399,32 @@ sub runtime_deps : Chained('buildChain') PathPart('runtime-deps') { } +sub history_graphs : Chained('buildChain') PathPart('history-graphs') { + my ($self, $c) = @_; + my $build = $c->stash->{build}; + if ($build->finished) { + $c->stash->{prevBuilds} = [$c->model('DB::Builds')->search( + { project => $c->stash->{project}->name + , jobset => $c->stash->{build}->jobset->name + , job => $c->stash->{build}->job->name + , 'me.system' => $build->system + , finished => 1 + , buildstatus => 0 + , 'me.id' => { '<=' => $build->id } + } + , { join => "actualBuildStep" + , "+select" => ["actualBuildStep.stoptime - actualBuildStep.starttime"] + , "+as" => ["actualBuildTime"] + , order_by => "me.id DESC" + , rows => 50 + } + ) + ]; + } + $c->stash->{template} = 'build-history-tab.tt'; +} + + sub nix : Chained('buildChain') PathPart('nix') CaptureArgs(0) { my ($self, $c) = @_; diff --git a/src/lib/Hydra/Schema/Builds.pm b/src/lib/Hydra/Schema/Builds.pm index c81f6523..8f40917f 100644 --- a/src/lib/Hydra/Schema/Builds.pm +++ b/src/lib/Hydra/Schema/Builds.pm @@ -550,13 +550,13 @@ __PACKAGE__->has_many( { "foreign.build" => "self.id" }, ); -#__PACKAGE__->has_one( -# "actualBuildStep", -# "Hydra::Schema::BuildSteps", -# { 'foreign.outpath' => 'self.outpath' -# , 'foreign.build' => 'self.id' -# }, -#); +__PACKAGE__->has_one( + "actualBuildStep", + "Hydra::Schema::BuildSteps", + { 'foreign.drvpath' => 'self.drvpath' + , 'foreign.build' => 'self.id' + }, +); __PACKAGE__->many_to_many("jobsetevals", "jobsetevalmembers", "eval"); diff --git a/src/root/build-history-tab.tt b/src/root/build-history-tab.tt new file mode 100644 index 00000000..787b460c --- /dev/null +++ b/src/root/build-history-tab.tt @@ -0,0 +1,141 @@ +[% PROCESS common.tt %] +[% PROCESS "product-list.tt" %] +[% USE HTML %] +[% USE Date %] + +