forked from lix-project/hydra
Show inputs and input changes on the jobset eval page
This commit is contained in:
parent
71d020735b
commit
fe7e0ff1f4
|
@ -206,9 +206,9 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
[% IF prevSuccessfulBuild && firstBrokenBuild && firstBrokenBuild.id != build.id %]
|
[% IF prevSuccessfulBuild && firstBrokenBuild && firstBrokenBuild.id != build.id %]
|
||||||
<td>[% INCLUDE renderInputDiff build1=prevSuccessfulBuild build2=firstBrokenBuild %]</td>
|
<td>[% INCLUDE renderInputDiff inputs1=prevSuccessfulBuild.inputs inputs2=firstBrokenBuild.inputs %]</td>
|
||||||
[% END %]
|
[% END %]
|
||||||
<td>[% INCLUDE renderInputDiff build1=prevSuccessfulBuild , build2=build %]</td>
|
<td>[% INCLUDE renderInputDiff inputs1=prevSuccessfulBuild.inputs inputs2=build.inputs %]</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
[% END %]
|
[% END %]
|
||||||
|
@ -311,34 +311,11 @@
|
||||||
|
|
||||||
<div id="tabs-buildinputs" class="tab-pane">
|
<div id="tabs-buildinputs" class="tab-pane">
|
||||||
|
|
||||||
<table class="tablesorter table table-striped table-condensed">
|
[% INCLUDE renderInputs inputs=build.inputs %]
|
||||||
<thead>
|
|
||||||
<tr><th>Name</th><th>Type</th><th>Value</th><th>Revision</th><th>Store path</th></tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
[% FOREACH input IN build.inputs %]
|
|
||||||
<tr>
|
|
||||||
<td><tt>[% input.name %]</tt></td>
|
|
||||||
<td><tt>[% type = input.type; inputTypes.$type %]</tt></td>
|
|
||||||
<td>
|
|
||||||
[% IF input.type == "build" || input.type == "sysbuild" %]
|
|
||||||
[% INCLUDE renderFullBuildLink build=input.dependency %]
|
|
||||||
[% ELSIF input.type == "string" || input.type == "boolean" %]
|
|
||||||
<tt>"[% input.value %]"</tt>
|
|
||||||
[% ELSE %]
|
|
||||||
<tt>[% input.uri %]</tt>
|
|
||||||
[% END %]
|
|
||||||
</td>
|
|
||||||
<td>[% IF input.revision %][% input.revision %][% END %]</td>
|
|
||||||
<td><tt>[% input.path %]</tt></td>
|
|
||||||
</tr>
|
|
||||||
[% END %]
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
[% IF prevBuild %]
|
[% IF prevBuild %]
|
||||||
<h3>Changes since previous [% INCLUDE renderBuildLink build=prevBuild %]</h3>
|
<h3>Changes since previous [% INCLUDE renderBuildLink build=prevBuild %]</h3>
|
||||||
[% INCLUDE renderInputDiff build2=build, build1=prevBuild %]
|
[% INCLUDE renderInputDiff inputs2=build.inputs inputs1=prevBuild.inputs %]
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -306,6 +306,34 @@ BLOCK renderDiffUri;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
|
|
||||||
|
BLOCK renderInputs; %]
|
||||||
|
<table class="tablesorter table table-striped table-condensed">
|
||||||
|
<thead>
|
||||||
|
<tr><th>Name</th><th>Type</th><th>Value</th><th>Revision</th><th>Store path</th></tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
[% FOREACH input IN inputs %]
|
||||||
|
<tr>
|
||||||
|
<td><tt>[% input.name %]</tt></td>
|
||||||
|
<td><tt>[% type = input.type; inputTypes.$type %]</tt></td>
|
||||||
|
<td>
|
||||||
|
[% IF input.type == "build" || input.type == "sysbuild" %]
|
||||||
|
[% INCLUDE renderFullBuildLink build=input.dependency %]
|
||||||
|
[% ELSIF input.type == "string" || input.type == "boolean" %]
|
||||||
|
<tt>"[% input.value %]"</tt>
|
||||||
|
[% ELSE %]
|
||||||
|
<tt>[% input.uri %]</tt>
|
||||||
|
[% END %]
|
||||||
|
</td>
|
||||||
|
<td>[% IF input.revision %][% input.revision %][% END %]</td>
|
||||||
|
<td><tt>[% input.path %]</tt></td>
|
||||||
|
</tr>
|
||||||
|
[% END %]
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
[% END;
|
||||||
|
|
||||||
|
|
||||||
BLOCK renderInputDiff; %]
|
BLOCK renderInputDiff; %]
|
||||||
<table class="table table-striped table-condensed">
|
<table class="table table-striped table-condensed">
|
||||||
[% IF !nestedDiff %]
|
[% IF !nestedDiff %]
|
||||||
|
@ -316,9 +344,9 @@ BLOCK renderInputDiff; %]
|
||||||
END;
|
END;
|
||||||
|
|
||||||
IF nestLevel <= 3;
|
IF nestLevel <= 3;
|
||||||
FOREACH bi1 IN build1.inputs;
|
FOREACH bi1 IN inputs1;
|
||||||
deletedInput = 1;
|
deletedInput = 1;
|
||||||
FOREACH bi2 IN build2.inputs;
|
FOREACH bi2 IN inputs2;
|
||||||
IF bi1.name == bi2.name;
|
IF bi1.name == bi2.name;
|
||||||
IF bi1.type == bi2.type;
|
IF bi1.type == bi2.type;
|
||||||
IF bi1.value != bi2.value || bi1.uri != bi2.uri %]
|
IF bi1.value != bi2.value || bi1.uri != bi2.uri %]
|
||||||
|
@ -338,7 +366,7 @@ BLOCK renderInputDiff; %]
|
||||||
<b>[% bi1.name %]</b></td><td><tt>[% INCLUDE renderShortInputValue input=bi1 %]</tt> to <tt>[% INCLUDE renderShortInputValue input=bi2 %]</tt>
|
<b>[% bi1.name %]</b></td><td><tt>[% INCLUDE renderShortInputValue input=bi1 %]</tt> to <tt>[% INCLUDE renderShortInputValue input=bi2 %]</tt>
|
||||||
<br/>
|
<br/>
|
||||||
<br/>
|
<br/>
|
||||||
[% INCLUDE renderInputDiff build1=bi1.dependency, build2=bi2.dependency, nestedDiff=1, nestLevel=nestLevel+1 %]
|
[% INCLUDE renderInputDiff inputs1=bi1.dependency.inputs inputs2=bi2.dependency.inputs nestedDiff=1 nestLevel=nestLevel+1 %]
|
||||||
</td></tr>
|
</td></tr>
|
||||||
[% END %]
|
[% END %]
|
||||||
[% ELSE %]
|
[% ELSE %]
|
||||||
|
|
|
@ -8,68 +8,90 @@ c.uri_for(c.controller('JobsetEval').action_for('view'),
|
||||||
[otherEval.id]) %]">[% otherEval.id %]</a>.</p>
|
[otherEval.id]) %]">[% otherEval.id %]</a>.</p>
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
||||||
[% BLOCK renderSome %]
|
<ul class="nav nav-tabs">
|
||||||
[% size = builds.size; max = full ? size : 30; %]
|
<li class="active"><a href="#tabs-status" data-toggle="tab">Job status</a></li>
|
||||||
[% INCLUDE renderBuildListBody builds=builds.slice(0, (size > max ? max : size) - 1)
|
<li><a href="#tabs-inputs" data-toggle="tab">Inputs</a></li>
|
||||||
hideProjectName=1 hideJobsetName=1 %]
|
</ul>
|
||||||
[% IF size > max; params = c.req.params; params.full = 1 %]
|
|
||||||
<tr><td class="centered" colspan="6"><a href="[% c.uri_for(c.controller('JobsetEval').action_for('view'), [eval.id], params) %]"><em>([% size - max %] more builds omitted)</em></a></td></tr>
|
|
||||||
[% END %]
|
|
||||||
[% END %]
|
|
||||||
|
|
||||||
[% INCLUDE renderBuildListHeader unsortable=1 %]
|
<div class="tab-content">
|
||||||
|
|
||||||
[% IF unfinished.size > 0 %]
|
<div id="tabs-status" class="tab-pane active">
|
||||||
<tr><th class="subheader" colspan="6"><strong>Queued</strong> jobs</th></tr>
|
|
||||||
[% INCLUDE renderSome builds=unfinished %]
|
|
||||||
[% END %]
|
|
||||||
|
|
||||||
[% IF new.size > 0 %]
|
[% BLOCK renderSome %]
|
||||||
<tr><th class="subheader" colspan="6"><strong>New</strong> jobs</th></tr>
|
[% size = builds.size; max = full ? size : 30; %]
|
||||||
[% INCLUDE renderSome builds=new %]
|
[% INCLUDE renderBuildListBody builds=builds.slice(0, (size > max ? max : size) - 1)
|
||||||
[% END %]
|
hideProjectName=1 hideJobsetName=1 %]
|
||||||
|
[% IF size > max; params = c.req.params; params.full = 1 %]
|
||||||
|
<tr><td class="centered" colspan="6"><a href="[% c.uri_for(c.controller('JobsetEval').action_for('view'), [eval.id], params) %]"><em>([% size - max %] more builds omitted)</em></a></td></tr>
|
||||||
|
[% END %]
|
||||||
|
[% END %]
|
||||||
|
|
||||||
[% IF removed.size > 0 %]
|
[% INCLUDE renderBuildListHeader unsortable=1 %]
|
||||||
<tr><th class="subheader" colspan="6"><strong>Removed</strong> jobs</th></tr>
|
|
||||||
[% size = removed.size; max = full ? size : 30; %]
|
|
||||||
[% FOREACH j IN removed.slice(0,(size > max ? max : size) - 1) %]
|
|
||||||
<tr>
|
|
||||||
<td colspan="2"></td>
|
|
||||||
<td colspan="2">[% INCLUDE renderJobName project=project.name jobset=jobset.name job=j.job %]</td>
|
|
||||||
<td colspan="2"><tt>[% j.system %]</tt></td>
|
|
||||||
</tr>
|
|
||||||
[% END %]
|
|
||||||
[% IF size > max; params = c.req.params; params.full = 1 %]
|
|
||||||
<tr><td class="centered" colspan="6"><a href="[% c.uri_for(c.controller('JobsetEval').action_for('view'), [eval.id], params) %]"><em>([% size - max %] more jobs omitted)</em></a></td></tr>
|
|
||||||
[% END %]
|
|
||||||
[% END %]
|
|
||||||
|
|
||||||
[% IF nowFail.size > 0 %]
|
[% IF unfinished.size > 0 %]
|
||||||
<tr><th class="subheader" colspan="6">Jobs that now <strong>fail</strong></th></tr>
|
<tr><th class="subheader" colspan="6"><strong>Queued</strong> jobs</th></tr>
|
||||||
[% INCLUDE renderSome builds=nowFail %]
|
[% INCLUDE renderSome builds=unfinished %]
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
||||||
[% IF nowSucceed.size > 0 %]
|
[% IF new.size > 0 %]
|
||||||
<tr><th class="subheader" colspan="6">Jobs that now <strong>succeed</strong></th></tr>
|
<tr><th class="subheader" colspan="6"><strong>New</strong> jobs</th></tr>
|
||||||
[% INCLUDE renderSome builds=nowSucceed %]
|
[% INCLUDE renderSome builds=new %]
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
||||||
[% IF stillFail.size > 0 %]
|
[% IF removed.size > 0 %]
|
||||||
<tr><th class="subheader" colspan="6">Jobs that still <strong>fail</strong></th></tr>
|
<tr><th class="subheader" colspan="6"><strong>Removed</strong> jobs</th></tr>
|
||||||
[% INCLUDE renderSome builds=stillFail %]
|
[% size = removed.size; max = full ? size : 30; %]
|
||||||
[% END %]
|
[% FOREACH j IN removed.slice(0,(size > max ? max : size) - 1) %]
|
||||||
|
<tr>
|
||||||
|
<td colspan="2"></td>
|
||||||
|
<td colspan="2">[% INCLUDE renderJobName project=project.name jobset=jobset.name job=j.job %]</td>
|
||||||
|
<td colspan="2"><tt>[% j.system %]</tt></td>
|
||||||
|
</tr>
|
||||||
|
[% END %]
|
||||||
|
[% IF size > max; params = c.req.params; params.full = 1 %]
|
||||||
|
<tr><td class="centered" colspan="6"><a href="[% c.uri_for(c.controller('JobsetEval').action_for('view'), [eval.id], params) %]"><em>([% size - max %] more jobs omitted)</em></a></td></tr>
|
||||||
|
[% END %]
|
||||||
|
[% END %]
|
||||||
|
|
||||||
[% IF stillSucceed.size > 0 %]
|
[% IF nowFail.size > 0 %]
|
||||||
<tr><th class="subheader" colspan="6">Jobs that still <strong>succeed</strong></th></tr>
|
<tr><th class="subheader" colspan="6">Jobs that now <strong>fail</strong></th></tr>
|
||||||
[% INCLUDE renderSome builds=stillSucceed %]
|
[% INCLUDE renderSome builds=nowFail %]
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
||||||
[% INCLUDE renderBuildListFooter %]
|
[% IF nowSucceed.size > 0 %]
|
||||||
|
<tr><th class="subheader" colspan="6">Jobs that now <strong>succeed</strong></th></tr>
|
||||||
|
[% INCLUDE renderSome builds=nowSucceed %]
|
||||||
|
[% END %]
|
||||||
|
|
||||||
[% IF c.user_exists %]
|
[% IF stillFail.size > 0 %]
|
||||||
<p>
|
<tr><th class="subheader" colspan="6">Jobs that still <strong>fail</strong></th></tr>
|
||||||
<a class="btn" href="[% c.uri_for(c.controller('JobsetEval').action_for('release'), [eval.id]) %]">Release</a>
|
[% INCLUDE renderSome builds=stillFail %]
|
||||||
</p>
|
[% END %]
|
||||||
[% END %]
|
|
||||||
|
[% IF stillSucceed.size > 0 %]
|
||||||
|
<tr><th class="subheader" colspan="6">Jobs that still <strong>succeed</strong></th></tr>
|
||||||
|
[% INCLUDE renderSome builds=stillSucceed %]
|
||||||
|
[% END %]
|
||||||
|
|
||||||
|
[% INCLUDE renderBuildListFooter %]
|
||||||
|
|
||||||
|
[% IF c.user_exists %]
|
||||||
|
<p>
|
||||||
|
<a class="btn" href="[% c.uri_for(c.controller('JobsetEval').action_for('release'), [eval.id]) %]">Release</a>
|
||||||
|
</p>
|
||||||
|
[% END %]
|
||||||
|
|
||||||
|
</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>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
Loading…
Reference in a new issue