forked from lix-project/hydra
* Controller for jobs which inherits all actions in ListBuilds. So
for instance we get channels specific for each job.
This commit is contained in:
parent
5162f05e2c
commit
0bd7abf10b
|
@ -9,6 +9,7 @@ use Hydra::Helper::CatalystUtils;
|
||||||
|
|
||||||
sub jobstatus : Chained('get_builds') PathPart Args(0) {
|
sub jobstatus : Chained('get_builds') PathPart Args(0) {
|
||||||
my ($self, $c) = @_;
|
my ($self, $c) = @_;
|
||||||
|
$c->stash->{template} = 'jobstatus.tt';
|
||||||
$c->stash->{latestBuilds} = getLatestBuilds($c, $c->stash->{allBuilds}, {});
|
$c->stash->{latestBuilds} = getLatestBuilds($c, $c->stash->{allBuilds}, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
35
src/Hydra/lib/Hydra/Controller/Job.pm
Normal file
35
src/Hydra/lib/Hydra/Controller/Job.pm
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
package Hydra::Controller::Job;
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use base 'Hydra::Base::Controller::ListBuilds';
|
||||||
|
use Hydra::Helper::Nix;
|
||||||
|
use Hydra::Helper::CatalystUtils;
|
||||||
|
|
||||||
|
|
||||||
|
sub job : Chained('/project/project') PathPart('job') CaptureArgs(1) {
|
||||||
|
my ($self, $c, $jobName) = @_;
|
||||||
|
|
||||||
|
$c->stash->{jobName} = $jobName;
|
||||||
|
|
||||||
|
# !!! nothing to do here yet, since we don't have a jobs table.
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub index : Chained('job') PathPart('') Args(0) {
|
||||||
|
my ($self, $c) = @_;
|
||||||
|
$c->go($self->action_for("all"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Hydra::Base::Controller::ListBuilds needs this.
|
||||||
|
sub get_builds : Chained('job') PathPart('') CaptureArgs(0) {
|
||||||
|
my ($self, $c) = @_;
|
||||||
|
$c->stash->{allBuilds} =
|
||||||
|
$c->stash->{curProject}->builds->search({attrName => $c->stash->{jobName}});
|
||||||
|
$c->stash->{channelBaseName} =
|
||||||
|
$c->stash->{curProject}->name . "-" . $c->stash->{jobName};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
1;
|
|
@ -219,21 +219,6 @@ sub release :Local {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sub job :Local {
|
|
||||||
my ($self, $c, $projectName, $jobName) = @_;
|
|
||||||
$c->stash->{template} = 'job.tt';
|
|
||||||
|
|
||||||
my $project = $c->model('DB::Projects')->find($projectName);
|
|
||||||
notFound($c, "Project $projectName doesn't exist.") if !defined $project;
|
|
||||||
$c->stash->{curProject} = $project;
|
|
||||||
|
|
||||||
$c->stash->{jobName} = $jobName;
|
|
||||||
$c->stash->{builds} = [$c->model('DB::Builds')->search(
|
|
||||||
{finished => 1, project => $projectName, attrName => $jobName},
|
|
||||||
{order_by => "timestamp DESC"})];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# Hydra::Base::Controller::ListBuilds needs this.
|
# Hydra::Base::Controller::ListBuilds needs this.
|
||||||
sub get_builds : Chained('/') PathPart('') CaptureArgs(0) {
|
sub get_builds : Chained('/') PathPart('') CaptureArgs(0) {
|
||||||
my ($self, $c) = @_;
|
my ($self, $c) = @_;
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
[% WRAPPER layout.tt title="All Builds" %]
|
[% WRAPPER layout.tt title="All Builds" %]
|
||||||
[% PROCESS common.tt %]
|
[% PROCESS common.tt %]
|
||||||
|
|
||||||
<h1>All Builds[% IF curProject %] in Project <tt>[% curProject.name %]</tt>[% END %]</h1>
|
<h1>All Builds
|
||||||
|
[% IF jobName %]for Job [% curProject.name %]:[% jobName %][% ELSE %]
|
||||||
|
[% IF curProject %] for Project <tt>[% curProject.name %]</tt>[% END %][% END %]</h1>
|
||||||
|
|
||||||
<p>Showing builds [% (page - 1) * resultsPerPage + 1 %] - [% (page - 1) * resultsPerPage + builds.size %]
|
<p>Showing builds [% (page - 1) * resultsPerPage + 1 %] - [% (page - 1) * resultsPerPage + builds.size %]
|
||||||
out of [% totalBuilds %] in order of descending timestamp.</p>
|
out of [% totalBuilds %] in order of descending timestamp.</p>
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Job name:</th>
|
<th>Job name:</th>
|
||||||
<td><a href="[% c.uri_for('/job' build.project.name build.attrname) %]"><tt>[% build.attrname %]</tt></a></td>
|
<td><a href="[% c.uri_for('/project' build.project.name 'job' build.attrname) %]"><tt>[% build.attrname %]</tt></a></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Nix name:</th>
|
<th>Nix name:</th>
|
||||||
|
|
|
@ -61,7 +61,7 @@
|
||||||
<td>[% build.schedulingInfo.priority %]</td>
|
<td>[% build.schedulingInfo.priority %]</td>
|
||||||
[% END %]
|
[% END %]
|
||||||
<td><a href="[% c.uri_for('/project' build.get_column("project")) %]"><tt>[% build.get_column("project") %]</tt></a></td>
|
<td><a href="[% c.uri_for('/project' build.get_column("project")) %]"><tt>[% build.get_column("project") %]</tt></a></td>
|
||||||
<td><a href="[% c.uri_for('/job' build.get_column("project") build.attrname) %]"><tt>[% build.attrname %]</tt></a></td>
|
<td><a href="[% c.uri_for('/project' build.get_column("project") 'job' build.attrname) %]"><tt>[% build.attrname %]</tt></a></td>
|
||||||
<td>[% build.resultInfo.releasename ? build.resultInfo.releasename : build.nixname %]</td>
|
<td>[% build.resultInfo.releasename ? build.resultInfo.releasename : build.nixname %]</td>
|
||||||
<td><tt>[% build.system %]</tt></td>
|
<td><tt>[% build.system %]</tt></td>
|
||||||
<td>[% date.format(build.timestamp, '%Y-%m-%d %H:%M:%S') %]</td>
|
<td>[% date.format(build.timestamp, '%Y-%m-%d %H:%M:%S') %]</td>
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
[% WRAPPER layout.tt title="Job ‘$curProject.name:$jobName’" %]
|
|
||||||
[% PROCESS common.tt %]
|
|
||||||
|
|
||||||
<h1>All builds for job <tt>[% curProject.name %]:[% jobName %]</tt></h1>
|
|
||||||
|
|
||||||
[% PROCESS renderBuildList builds=builds %]
|
|
||||||
|
|
||||||
[% END %]
|
|
Loading…
Reference in a new issue