forked from lix-project/hydra
* Provide some redirects to the latest successful build for a job (or
project, or jobset, or globally, but that's not all that useful). This is useful if you want to link to the latest build.
This commit is contained in:
parent
f2a42c0d81
commit
f9572e4d1e
|
@ -59,4 +59,34 @@ sub nix : Chained('get_builds') PathPart('channel') CaptureArgs(1) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Redirect to the latest successful build.
|
||||||
|
sub latest : Chained('get_builds') PathPart('latest') {
|
||||||
|
my ($self, $c) = @_;
|
||||||
|
|
||||||
|
my ($latest) = joinWithResultInfo($c, $c->stash->{allBuilds})
|
||||||
|
->search({finished => 1, buildstatus => 0}, {order_by => ["timestamp DESC"]});
|
||||||
|
|
||||||
|
notFound "There is no successful build to redirect to." unless defined $latest;
|
||||||
|
|
||||||
|
$c->res->redirect($c->uri_for($c->controller('Build')->action_for("view_build"), [$latest->id]));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Redirect to the latest successful build for a specific platform.
|
||||||
|
sub latest_for : Chained('get_builds') PathPart('latest-for') {
|
||||||
|
my ($self, $c, $system) = @_;
|
||||||
|
|
||||||
|
notFound($c, "You need to specify a platform type in the URL.") unless defined $system;
|
||||||
|
|
||||||
|
my ($latest) = joinWithResultInfo($c, $c->stash->{allBuilds})
|
||||||
|
->search({finished => 1, buildstatus => 0, system => $system}, {order_by => ["timestamp DESC"]});
|
||||||
|
|
||||||
|
notFound($c, "There is no successful build for platform `$system' to redirect to.") unless defined $latest;
|
||||||
|
|
||||||
|
$c->res->redirect($c->uri_for($c->controller('Build')->action_for("view_build"), [$latest->id]));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
@ -23,6 +23,8 @@ sub overview : Chained('job') PathPart('') Args(0) {
|
||||||
$c->stash->{template} = 'job.tt';
|
$c->stash->{template} = 'job.tt';
|
||||||
|
|
||||||
getBuildStats($c, scalar $c->stash->{job}->builds);
|
getBuildStats($c, scalar $c->stash->{job}->builds);
|
||||||
|
|
||||||
|
$c->stash->{systems} = [$c->stash->{job}->builds->search({}, {select => ["system"], distinct => 1})];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,19 @@
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Latest builds</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><a href="[% c.uri_for('/job' project.name jobset.name job.name
|
||||||
|
'latest') %]">Latest successful build.</a></li>
|
||||||
|
[% FOREACH system IN systems %]
|
||||||
|
<li><a href="[% c.uri_for('/job' project.name jobset.name job.name
|
||||||
|
'latest-for' system.system) %]">Latest successful build for <tt>[%
|
||||||
|
system.system %]</tt>.</a></li>
|
||||||
|
[% END %]
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<h2>Statistics</h2>
|
<h2>Statistics</h2>
|
||||||
|
|
||||||
[% INCLUDE showBuildStats %]
|
[% INCLUDE showBuildStats %]
|
||||||
|
|
Loading…
Reference in a new issue