* hydra: 'new' UI for project/jobset/job/build
This commit is contained in:
@ -38,6 +38,37 @@ sub index : Chained('jobset') PathPart('') Args(0) {
|
||||
{},
|
||||
{select => ["job"], order_by => ["job"], group_by => ["job"], having => { 'sum(isCurrent)' => 0 }}
|
||||
)];
|
||||
$c->stash->{systems} = [$c->stash->{jobset}->builds->search({iscurrent => 1}, {select => ["system"], distinct => 1})];
|
||||
|
||||
# status per system
|
||||
my @systems = ();
|
||||
foreach my $system (@{$c->stash->{systems}}) {
|
||||
push(@systems, $system->system);
|
||||
}
|
||||
|
||||
if(scalar(@{$c->stash->{activeJobs}}) <= 20) {
|
||||
my @select = ();
|
||||
my @as = ();
|
||||
push(@select, "job"); push(@as, "job");
|
||||
foreach my $system (@systems) {
|
||||
push(@select, "(SELECT buildstatus FROM BuildResultInfo bri NATURAL JOIN Builds b WHERE b.id = (SELECT MAX(id) FROM Builds t WHERE t.project = me.project AND t.jobset = me.jobset AND t.job = me.job AND t.system = '$system'))");
|
||||
push(@as, $system);
|
||||
push(@select, "(SELECT b.id FROM BuildResultInfo bri NATURAL JOIN Builds b WHERE b.id = (SELECT MAX(id) FROM Builds t WHERE t.project = me.project AND t.jobset = me.jobset AND t.job = me.job AND t.system = '$system'))");
|
||||
push(@as, $system."-build");
|
||||
}
|
||||
$c->stash->{activeJobsStatus} = [$c->model('DB')->resultset('ActiveJobsForJobset')
|
||||
->search( {}
|
||||
, { bind => [$c->stash->{project}->name, $c->stash->{jobset}->name]
|
||||
, select => \@select
|
||||
, as => \@as
|
||||
, order_by => ["job"]
|
||||
})];
|
||||
}
|
||||
|
||||
# last builds for jobset
|
||||
my $tmp = $c->stash->{jobset}->builds;
|
||||
$c->stash->{lastBuilds} = [joinWithResultInfo($c, $tmp)
|
||||
->search({finished => 1}, {order_by => "timestamp DESC", rows => 5 })] ;
|
||||
}
|
||||
|
||||
|
||||
|
@ -191,6 +191,14 @@ __PACKAGE__->has_many(
|
||||
|
||||
use Hydra::Helper::Nix;
|
||||
|
||||
# order buildsteps
|
||||
__PACKAGE__->has_many(
|
||||
"buildsteps",
|
||||
"Hydra::Schema::BuildSteps",
|
||||
{ "foreign.build" => "self.id" },
|
||||
{ order_by => "stepnr" },
|
||||
);
|
||||
|
||||
__PACKAGE__->has_many(
|
||||
"dependents",
|
||||
"Hydra::Schema::BuildInputs",
|
||||
@ -273,6 +281,8 @@ QUERY
|
||||
$joinWithStatusChange
|
||||
QUERY
|
||||
);
|
||||
|
||||
makeSource("ActiveJobs$name", "(select distinct project, jobset, job from Builds where isCurrent = 1 $constraint)");
|
||||
|
||||
makeSource(
|
||||
"LatestSucceeded$name",
|
||||
|
@ -97,6 +97,12 @@ __PACKAGE__->has_many(
|
||||
# Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:05:10
|
||||
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+HDJ8tIPcvj5+IwgHqTnaw
|
||||
|
||||
__PACKAGE__->has_many(
|
||||
"jobsets",
|
||||
"Hydra::Schema::Jobsets",
|
||||
{ "foreign.project" => "self.name" },
|
||||
{ order_by => "name" },
|
||||
);
|
||||
|
||||
# You can replace this text with custom content, and it will be preserved on regeneration
|
||||
1;
|
||||
|
Reference in New Issue
Block a user