forked from lix-project/hydra
Allow bumping an entire evaluation to the front of the queue
This is mostly useful if we need to prioritize (say) a nixos-stable eval that has some critical security bug fix.
This commit is contained in:
parent
eb13007fe6
commit
08739a2a5a
|
@ -187,6 +187,19 @@ sub restart_aborted : Chained('eval') PathPart('restart-aborted') Args(0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sub bump : Chained('eval') PathPart('bump') Args(0) {
|
||||||
|
my ($self, $c) = @_;
|
||||||
|
requireProjectOwner($c, $c->stash->{eval}->project); # FIXME: require admin?
|
||||||
|
my $builds = $c->stash->{eval}->builds->search({ finished => 0 });
|
||||||
|
my $n = $builds->count();
|
||||||
|
$c->model('DB')->schema->txn_do(sub {
|
||||||
|
$builds->update({globalpriority => time()});
|
||||||
|
});
|
||||||
|
$c->flash->{successMsg} = "$n builds have been bumped to the front of the queue.";
|
||||||
|
$c->res->redirect($c->uri_for($c->controller('JobsetEval')->action_for('view'), $c->req->captures));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Hydra::Base::Controller::NixChannel needs this.
|
# Hydra::Base::Controller::NixChannel needs this.
|
||||||
sub nix : Chained('eval') PathPart('channel') CaptureArgs(0) {
|
sub nix : Chained('eval') PathPart('channel') CaptureArgs(0) {
|
||||||
my ($self, $c) = @_;
|
my ($self, $c) = @_;
|
||||||
|
|
|
@ -47,8 +47,15 @@ c.uri_for(c.controller('JobsetEval').action_for('view'),
|
||||||
<ul class="dropdown-menu">
|
<ul class="dropdown-menu">
|
||||||
<li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('release'), [eval.id]) %]">Create a release from this evaluation</a></li>
|
<li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('release'), [eval.id]) %]">Create a release from this evaluation</a></li>
|
||||||
<li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('create_jobset'), [eval.id]) %]">Create a jobset from this evaluation</a></li>
|
<li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('create_jobset'), [eval.id]) %]">Create a jobset from this evaluation</a></li>
|
||||||
|
[% IF unfinished.size > 0 %]
|
||||||
<li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('cancel'), [eval.id]) %]">Cancel all scheduled builds</a></li>
|
<li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('cancel'), [eval.id]) %]">Cancel all scheduled builds</a></li>
|
||||||
|
[% END %]
|
||||||
|
[% IF aborted.size > 0 %]
|
||||||
<li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('restart_aborted'), [eval.id]) %]">Restart all aborted builds</a></li>
|
<li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('restart_aborted'), [eval.id]) %]">Restart all aborted builds</a></li>
|
||||||
|
[% END %]
|
||||||
|
[% IF unfinished.size > 0 %]
|
||||||
|
<li><a href="[% c.uri_for(c.controller('JobsetEval').action_for('bump'), [eval.id]) %]">Bump builds to front of queue</a></li>
|
||||||
|
[% END %]
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
Loading…
Reference in a new issue