2021-11-22 13:23:02 -05:00
[% WRAPPER layout.tt
title="Evaluation $eval.id of jobset " _ makeNameTextForJobset(jobset)
titleHTML="Evaluation $eval.id of jobset " _ linkToJobset(jobset) %]
2012-04-02 16:11:22 +02:00
[% PROCESS common.tt %]
2021-04-08 11:11:06 -04:00
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle float-right" data-toggle="dropdown"><i class="fas fa-eye"></i> Compare to...</button>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="?">Preceding evaluation in this jobset</a>
<div class="dropdown-divider"></div>
2021-09-08 23:23:29 +02:00
<a class="dropdown-item" href="?compare=-[% 24 * 60 * 60 %]&full=[% full ? 1 : 0 %]">This jobset <strong>one day</strong> earlier</a>
<a class="dropdown-item" href="?compare=-[% 7 * 24 * 60 * 60 %]&full=[% full ? 1 : 0 %]">This jobset <strong>one week</strong> earlier</a>
<a class="dropdown-item" href="?compare=-[% 31 * 24 * 60 * 60 %]&full=[% full ? 1 : 0 %]">This jobset <strong>one month</strong> earlier</a>
2013-03-05 17:37:17 +01:00
[% IF project.jobsets_rs.count > 1 %]
2021-04-08 11:11:06 -04:00
<div class="dropdown-divider"></div>
2013-08-28 15:26:50 +02:00
[% FOREACH j IN project.jobsets.sort('name'); IF j.name != jobset.name %]
2021-09-08 23:23:29 +02:00
<a class="dropdown-item" href="?compare=[% j.name %]&full=[% full ? 1 : 0 %]">Jobset <tt>[% project.name %]:[% j.name %]</tt></a>
2013-03-05 17:37:17 +01:00
[% END; END %]
[% END %]
2021-04-08 11:11:06 -04:00
</div>
2013-03-05 17:37:17 +01:00
</div>
2019-05-11 00:52:06 +02:00
<p>This evaluation was performed [% IF eval.flake %]from the flake
<tt>[%HTML.escape(eval.flake)%]</tt>[%END%] on [% INCLUDE renderDateTime
2015-02-26 13:11:33 +01:00
timestamp=eval.timestamp %]. Fetching the dependencies took [%
eval.checkouttime %]s and evaluation took [% eval.evaltime %]s.</p>
2013-02-14 16:51:42 +01:00
[% IF otherEval %]
2012-04-02 20:40:59 +02:00
<p>Comparisons are relative to [% INCLUDE renderFullJobsetName
2013-02-14 18:03:12 +01:00
project=otherEval.jobset.project.name jobset=otherEval.jobset.name %] evaluation <a href="[%
2012-04-02 20:40:59 +02:00
c.uri_for(c.controller('JobsetEval').action_for('view'),
[otherEval.id]) %]">[% otherEval.id %]</a>.</p>
2013-08-28 15:46:08 +02:00
[% ELSE %]
2021-03-31 20:03:44 -04:00
<div class="alert alert-danger">Couldn't find an evaluation to compare to.</div>
2013-02-14 16:51:42 +01:00
[% END %]
2012-04-02 16:11:22 +02:00
2019-07-30 17:51:24 -04:00
<form>
2021-03-31 21:06:55 -04:00
<div class="form-group">
<input name="filter" type="text" class="form-control" type="search" placeholder="Search jobs by name..." [% HTML.attributes(value => filter) %]/>
<input name="compare" type="hidden" [% HTML.attributes(value => otherEval.id) %]/>
<input name="full" type="hidden" [% HTML.attributes(value => full) %]/>
</div>
2013-08-28 17:06:08 +02:00
</form>
2013-03-05 16:19:33 +01:00
<ul class="nav nav-tabs">
2013-10-03 01:34:17 +02:00
[% IF c.user_exists %]
2019-07-30 17:51:24 -04:00
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#">Actions</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="[% c.uri_for(c.controller('JobsetEval').action_for('create_jobset'), [eval.id]) %]">Create a jobset from this evaluation</a>
2015-08-10 18:56:19 +02:00
[% IF unfinished.size > 0 %]
2019-07-30 17:51:24 -04:00
<a class="dropdown-item" href="[% c.uri_for(c.controller('JobsetEval').action_for('cancel'), [eval.id]) %]">Cancel all scheduled builds</a>
2015-08-10 18:56:19 +02:00
[% END %]
2022-01-07 12:33:33 -08:00
[% IF aborted.size > 0 || stillFail.size > 0 || nowFail.size > 0 || failed.size > 0 %]
2019-07-30 17:51:24 -04:00
<a class="dropdown-item" href="[% c.uri_for(c.controller('JobsetEval').action_for('restart_failed'), [eval.id]) %]">Restart all failed builds</a>
2015-10-28 15:04:12 +01:00
[% END %]
2015-08-10 18:56:19 +02:00
[% IF aborted.size > 0 %]
2019-07-30 17:51:24 -04:00
<a class="dropdown-item" href="[% c.uri_for(c.controller('JobsetEval').action_for('restart_aborted'), [eval.id]) %]">Restart all aborted builds</a>
2015-08-10 18:56:19 +02:00
[% END %]
[% IF unfinished.size > 0 %]
2019-07-30 17:51:24 -04:00
<a class="dropdown-item" href="[% c.uri_for(c.controller('JobsetEval').action_for('bump'), [eval.id]) %]">Bump builds to front of queue</a>
2015-08-10 18:56:19 +02:00
[% END %]
2019-07-30 17:51:24 -04:00
</div>
2013-10-03 01:34:17 +02:00
</li>
[% END %]
2013-10-03 01:54:42 +02:00
[% IF aborted.size > 0 %]
2024-03-12 22:32:58 +01:00
<li class="nav-item"><a class="nav-link" href="#tabs-aborted" data-toggle="tab"><span class="text-warning">Aborted / Timed out Jobs ([% aborted.size %])</span></a></li>
2013-10-03 01:54:42 +02:00
[% END %]
2013-08-28 17:06:08 +02:00
[% IF nowFail.size > 0 %]
2021-12-08 20:02:14 -05:00
<li class="nav-item"><a class="nav-link" href="#tabs-now-fail" data-toggle="tab"><span class="text-warning">Newly Failing Jobs ([% nowFail.size %])</span></a></li>
2013-08-28 17:06:08 +02:00
[% END %]
[% IF nowSucceed.size > 0 %]
2021-12-08 20:02:14 -05:00
<li class="nav-item"><a class="nav-link" href="#tabs-now-succeed" data-toggle="tab"><span class="text-success">Newly Succeeding Jobs ([% nowSucceed.size %])</span></a></li>
2013-08-28 17:06:08 +02:00
[% END %]
[% IF new.size > 0 %]
2021-12-08 20:02:14 -05:00
<li class="nav-item"><a class="nav-link" href="#tabs-new" data-toggle="tab">New Jobs ([% new.size %])</a></li>
2013-08-28 17:06:08 +02:00
[% END %]
[% IF removed.size > 0 %]
2021-12-08 20:02:14 -05:00
<li class="nav-item"><a class="nav-link" href="#tabs-removed" data-toggle="tab">Removed Jobs ([% removed.size %])</a></li>
2013-08-28 17:06:08 +02:00
[% END %]
[% IF stillFail.size > 0 %]
2021-12-08 20:02:14 -05:00
<li class="nav-item"><a class="nav-link" href="#tabs-still-fail" data-toggle="tab">Still Failing Jobs ([% stillFail.size %])</a></li>
2013-08-28 17:06:08 +02:00
[% END %]
[% IF stillSucceed.size > 0 %]
2021-12-08 20:02:14 -05:00
<li class="nav-item"><a class="nav-link" href="#tabs-still-succeed" data-toggle="tab">Still Succeeding Jobs ([% stillSucceed.size %])</a></li>
2013-08-28 17:06:08 +02:00
[% END %]
[% IF unfinished.size > 0 %]
2021-12-08 20:02:14 -05:00
<li class="nav-item"><a class="nav-link" href="#tabs-unfinished" data-toggle="tab">Queued Jobs ([% unfinished.size %])</a></li>
2013-08-28 17:06:08 +02:00
[% END %]
2019-07-30 17:51:24 -04:00
<li class="nav-item"><a class="nav-link" href="#tabs-inputs" data-toggle="tab">Inputs</a></li>
2021-01-21 12:59:03 -05:00
2021-02-01 18:35:48 -05:00
[% IF eval.evaluationerror.errormsg %]
2021-12-08 20:02:14 -05:00
<li class="nav-item"><a class="nav-link" href="#tabs-errors" data-toggle="tab"><span class="text-warning">Evaluation Errors</span></a></li>
2021-01-21 12:59:03 -05:00
[% END %]
2013-03-05 16:19:33 +01:00
</ul>
2012-04-02 16:11:22 +02:00
2013-08-28 17:06:08 +02:00
[% BLOCK renderSome %]
[% INCLUDE renderBuildListHeader unsortable=1 %]
[% size = builds.size; max = full ? size : 250; %]
[% INCLUDE renderBuildListBody builds=builds.slice(0, (size > max ? max : size) - 1)
2015-10-27 15:37:17 +01:00
hideProjectName=1 hideJobsetName=1 busy=0 %]
2013-08-28 17:06:08 +02:00
[% IF size > max; params = c.req.params; params.full = 1 %]
2018-07-15 17:19:03 +02:00
<tr><td class="centered" colspan="6"><a href="[% c.uri_for(c.controller('JobsetEval').action_for('view'), [eval.id], params) %][% tabname %]"><em>([% size - max %] more builds omitted)</em></a></td></tr>
2013-08-28 17:06:08 +02:00
[% END %]
[% INCLUDE renderBuildListFooter %]
[% END %]
2013-01-22 14:41:02 +01:00
2013-08-28 17:06:08 +02:00
<div class="tab-content">
2012-04-02 16:11:22 +02:00
2013-10-03 01:54:42 +02:00
<div id="tabs-aborted" class="tab-pane">
2018-07-15 17:19:03 +02:00
[% INCLUDE renderSome builds=aborted tabname="#tabs-aborted" %]
2013-10-03 01:54:42 +02:00
</div>
2013-08-28 17:06:08 +02:00
<div id="tabs-now-fail" class="tab-pane">
2018-07-15 17:19:03 +02:00
[% INCLUDE renderSome builds=nowFail tabname="#tabs-now-fail" %]
2013-08-28 17:06:08 +02:00
</div>
2012-04-02 16:11:22 +02:00
2013-08-28 17:06:08 +02:00
<div id="tabs-now-succeed" class="tab-pane">
2018-07-15 17:19:03 +02:00
[% INCLUDE renderSome builds=nowSucceed tabname="#tabs-now-succeed" %]
2013-08-28 17:06:08 +02:00
</div>
2012-04-02 16:11:22 +02:00
2013-08-28 17:06:08 +02:00
<div id="tabs-new" class="tab-pane">
2018-07-15 17:19:03 +02:00
[% INCLUDE renderSome builds=new tabname="#tabs-new" %]
2013-08-28 17:06:08 +02:00
</div>
2013-03-05 16:19:33 +01:00
2013-08-28 17:06:08 +02:00
<div id="tabs-removed" class="tab-pane">
<table class="table table-striped table-condensed clickable-rows">
<thead>
<tr><th>Job</th><th>System</th></tr>
</thead>
<tbody>
[% size = removed.size; max = full ? size : 250; %]
[% FOREACH j IN removed.slice(0,(size > max ? max : size) - 1) %]
<tr>
<td>[% INCLUDE renderJobName project=project.name jobset=jobset.name job=j.job %]</td>
<td><tt>[% j.system %]</tt></td>
</tr>
[% END %]
[% IF size > max; params = c.req.params; params.full = 1 %]
2018-07-15 17:19:03 +02:00
<tr><td class="centered" colspan="2"><a href="[% c.uri_for(c.controller('JobsetEval').action_for('view'), [eval.id], params) %]#tabs-removed"><em>([% size - max %] more jobs omitted)</em></a></td></tr>
2013-08-28 17:06:08 +02:00
[% END %]
</tbody>
</table>
</div>
2013-03-05 16:19:33 +01:00
2013-08-28 17:06:08 +02:00
<div id="tabs-still-fail" class="tab-pane">
2018-07-15 17:19:03 +02:00
[% INCLUDE renderSome builds=stillFail tabname="#tabs-still-fail" %]
2013-08-28 17:06:08 +02:00
</div>
2013-03-05 16:19:33 +01:00
2013-08-28 17:06:08 +02:00
<div id="tabs-still-succeed" class="tab-pane">
2018-07-15 17:19:03 +02:00
[% INCLUDE renderSome builds=stillSucceed tabname="#tabs-still-succeed" %]
2013-08-28 17:06:08 +02:00
</div>
2013-03-05 16:19:33 +01:00
2013-08-28 17:06:08 +02:00
<div id="tabs-unfinished" class="tab-pane">
2018-07-15 17:19:03 +02:00
[% INCLUDE renderSome builds=unfinished tabname="#tabs-unfinished" %]
2013-03-05 16:19:33 +01:00
</div>
<div id="tabs-inputs" class="tab-pane">
[% INCLUDE renderInputs inputs=eval.jobsetevalinputs %]
[% IF otherEval %]
<h3>Changes</h3>
[% INCLUDE renderInputDiff inputs2=eval.jobsetevalinputs inputs1=otherEval.jobsetevalinputs %]
[% END %]
</div>
2021-02-01 18:35:48 -05:00
[% IF eval.evaluationerror.errormsg %]
2021-01-21 12:59:03 -05:00
<div id="tabs-errors" class="tab-pane">
2024-02-16 16:50:33 +01:00
<iframe src="[% c.uri_for(c.controller('JobsetEval').action_for('errors'), [eval.id], params) %]" loading="lazy" frameBorder="0" width="100%"></iframe>
2021-01-21 12:59:03 -05:00
</div>
[% END %]
2013-03-05 16:19:33 +01:00
</div>
2012-07-18 23:46:41 +02:00
2012-04-02 16:11:22 +02:00
[% END %]