Author: rob
Date: Wed Jul 14 07:31:14 2010
New Revision: 22595
URL: https://svn.nixos.org/websvn/nix/?rev=22595&sc=1
Log:
Hydra: In case of failure, also show changes between last succesful build and
the first failed build after this
Modified:
hydra/trunk/src/lib/Hydra/Controller/Build.pm
hydra/trunk/src/lib/Hydra/Helper/CatalystUtils.pm
hydra/trunk/src/root/build.tt
Modified: hydra/trunk/src/lib/Hydra/Controller/Build.pm
==============================================================================
--- hydra/trunk/src/lib/Hydra/Controller/Build.pm Tue Jul 13 23:42:33
2010 (r22594)
+++ hydra/trunk/src/lib/Hydra/Controller/Build.pm Wed Jul 14 07:31:14
2010 (r22595)
@@ -22,6 +22,7 @@
$c->stash->{prevBuild} = getPreviousBuild($c, $c->stash->{build});
$c->stash->{prevSuccessfulBuild} = getPreviousSuccessfulBuild($c,
$c->stash->{build});
+ $c->stash->{firstBrokenBuild} = getNextBuild($c,
$c->stash->{prevSuccessfulBuild});
$c->stash->{mappers} = [$c->model('DB::UriRevMapper')->all];
Modified: hydra/trunk/src/lib/Hydra/Helper/CatalystUtils.pm
==============================================================================
--- hydra/trunk/src/lib/Hydra/Helper/CatalystUtils.pm Tue Jul 13 23:42:33
2010 (r22594)
+++ hydra/trunk/src/lib/Hydra/Helper/CatalystUtils.pm Wed Jul 14 07:31:14
2010 (r22595)
@@ -7,7 +7,7 @@
our @ISA = qw(Exporter);
our @EXPORT = qw(
- getBuild getPreviousBuild getPreviousSuccessfulBuild getBuildStats
joinWithResultInfo getChannelData
+ getBuild getPreviousBuild getNextBuild getPreviousSuccessfulBuild
getBuildStats joinWithResultInfo getChannelData
error notFound
requireLogin requireProjectOwner requireAdmin requirePost isAdmin
isProjectOwner
trim
@@ -35,6 +35,20 @@
return $prevBuild;
}
+sub getNextBuild {
+ my ($c, $build) = @_;
+ (my $nextBuild) = $c->model('DB::Builds')->search(
+ { finished => 1
+ , system => $build->system
+ , project => $build->project->name
+ , jobset => $build->jobset->name
+ , job => $build->job->name
+ , 'me.id' => { '>' => $build->id }
+ }, {rows => 1, order_by => "id ASC"});
+
+ return $nextBuild;
+}
+
sub getPreviousSuccessfulBuild {
my ($c, $build) = @_;
(my $prevBuild) = joinWithResultInfo($c, $c->model('DB::Builds'))->search(
Modified: hydra/trunk/src/root/build.tt
==============================================================================
--- hydra/trunk/src/root/build.tt Tue Jul 13 23:42:33 2010 (r22594)
+++ hydra/trunk/src/root/build.tt Wed Jul 14 07:31:14 2010 (r22595)
@@ -183,6 +183,16 @@
[% INCLUDE renderBuildSteps type="Failed" %]
[% END %]
+ [% IF prevSuccessfulBuild && firstBrokenBuild &&
firstBrokenBuild.id != build.id %]
+ <h2>Changes</h2>
+ <p>
+ Build [% INCLUDE renderFullBuildLink build=firstBrokenBuild
%] is the first build failure after the previous successful build of this job.
The changes that might have caused the failure are:
+ </p>
+ [% INCLUDE renderInputDiff build2=prevSuccessfulBuild ,
build1=firstBrokenBuild %]
+ <br />
+ <p/>
+ [% END %]
+
[% IF build.resultInfo.buildstatus != 0 && prevSuccessfulBuild %]
<h2>Changes</h2>
<p>
_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits