[%
USE date;
USE String;
USE HTML;
BLOCK renderDateTime;
date.format(timestamp, '%Y-%m-%d %H:%M:%S');
END;
BLOCK renderProjectName %]
[% project %]
[% END;
BLOCK renderJobsetName %]
[% jobset %]
[% END;
BLOCK renderJobName %]
[% job %]
[% END;
BLOCK renderFullJobsetName %]
[% INCLUDE renderProjectName inRow=0 %]:[% INCLUDE renderJobsetName %]
[% END;
BLOCK renderFullJobName %]
[% IF !hideProjectName; INCLUDE renderProjectName inRow=0 %]:[% END; IF !hideJobsetName; INCLUDE renderJobsetName inRow=0 %]:[% END; INCLUDE renderJobName %]
[% END;
BLOCK renderFullJobNameOfBuild;
INCLUDE renderFullJobName project=build.get_column("project") jobset = build.get_column("jobset") job = build.get_column("job");
END;
BLOCK renderDuration;
IF duration >= 24 * 60 * 60; duration div (24 * 60 * 60) %]d [% END;
IF duration >= 60 * 60; duration div (60 * 60) % 24 %]h [% END;
IF duration >= 60; duration div 60 % 60 %]m [% END;
duration % 60 %]s[%
END;
BLOCK renderBuildListHeader %]
[% IF !hideResultInfo %]
|
[% END %]
[% IF showSchedulingInfo %]
|
[% END %]
# |
[% IF showSchedulingInfo %]
P |
[% END %]
[% IF !hideJobName %]
Job |
[% END %]
Release name |
System |
[% IF showSchedulingInfo %]Queued at[% ELSE %]Finished at[% END %] |
[% IF showStatusChange %]
[% END %]
[% IF showDescription %]
Description |
[% END %]
[% END;
BLOCK renderBuildListBody;
FOREACH build IN builds; %]
[% IF !hideResultInfo %]
[% INCLUDE renderBuildStatusIcon size=16 busy=(showSchedulingInfo ? 1 : 0) buildstatus=build.buildstatus %]
|
[% END %]
[% IF showSchedulingInfo %]
[% IF build.busy %]Started[% ELSE %]Queued[% END %] |
[% END %]
[% build.id %] |
[% IF showSchedulingInfo %]
[% build.priority %] |
[% END %]
[% IF !hideJobName %]
[% INCLUDE renderFullJobNameOfBuild %] |
[% END %]
[% !showSchedulingInfo and build.get_column('releasename') ? build.get_column('releasename') : build.nixname %] |
[% build.system %] |
[% t = showSchedulingInfo ? build.timestamp : build.stoptime; IF t; date.format(showSchedulingInfo ? build.timestamp : build.stoptime, '%Y-%m-%d %H:%M:%S'); ELSE; "-"; END %] |
[% IF showStatusChange %]
[% IF build.get_column('statusChangeTime') %]
[% date.format(build.get_column('statusChangeTime'), '%Y-%m-%d %H:%M:%S') %]
[% ELSE %]
never
[% END %]
|
[% END %]
[% IF showDescription %]
[% build.description %] |
[% END %]
[% END;
IF linkToAll %]
More... |
[% END;
END;
BLOCK renderBuildListFooter %]
[% END;
BLOCK renderBuildList;
INCLUDE renderBuildListHeader;
INCLUDE renderBuildListBody;
INCLUDE renderBuildListFooter;
END;
BLOCK renderLink %][% title %][% END;
BLOCK renderViewJobName;
IF job.description; HTML.escape(job.description); ELSE %][% job.job %] ([% job.attrs %])[% END;
END;
BLOCK maybeLink;
IF uri %] uri, class => class); IF confirmmsg +%] onclick="javascript:return confirm('[% confirmmsg %]')"[% END %]>[% content %][% ELSE; content; END;
END;
BLOCK renderSelection;
IF edit;
IF radiobuttons; %]
[% FOREACH name IN options.keys.sort %]
[% END %]
[% ELSE %]
[% END;
ELSE;
options.$curValue;
END;
END;
BLOCK editString; %]
param, name => param, value => value) %] />
[% END;
BLOCK renderFullBuildLink;
INCLUDE renderFullJobNameOfBuild build=build %] build [% build.id %][%
END;
BLOCK renderBuildLink; %]
build [% build.id %]
[% END;
BLOCK renderBuildStatusIcon;
finished = build != undef ? build.finished : 1;
busy = busy != undef ? busy : build.busy;
buildstatus = buildstatus != undef ? buildstatus : build.buildstatus;
IF finished;
IF buildstatus == 0 %]
[% ELSIF buildstatus == 1 %]
[% ELSIF buildstatus == 2 || buildstatus == 5 %]
[% ELSIF buildstatus == 3 %]
[% ELSIF buildstatus == 4 %]
[% ELSIF buildstatus == 6 %]
[% ELSE %]
[% END;
ELSIF busy %]
[% ELSE %]
[% END;
END;
BLOCK renderStatus;
IF build.finished;
buildstatus = build.buildstatus;
IF icon; INCLUDE renderBuildStatusIcon size=16; END;
IF buildstatus == 0 %]
Success
[% ELSIF buildstatus == 1 %]
Build returned a non-zero exit code
[% ELSIF buildstatus == 2 || buildstatus == 5 %]
A dependency of the build failed
[% ELSIF buildstatus == 4 %]
Cancelled by user
[% ELSIF buildstatus == 6 %]
Build failed (with result)
[% ELSE %]
Aborted
(Hydra failure; see below)
[% END;
ELSIF build.busy %]
Build in progress
since [% INCLUDE renderDateTime timestamp = build.starttime;
ELSE %]
Scheduled to be built
[% END;
END;
BLOCK renderInputValue;
IF input.type == "build" || input.type == "sysbuild";
INCLUDE renderFullBuildLink build=input.dependency;
ELSIF input.type == "string" || input.type == "boolean" %]
"[% input.value %]"
[% ELSE %]
[% input.uri %][% IF input.revision %] (r[% input.revision %])[% END %]
[% END;
END;
BLOCK renderShortInputValue;
IF input.type == "build" || input.type == "sysbuild" %]
[% input.dependency.id %]
[% ELSIF input.type == "string" || input.type == "boolean" %]
"[% input.value %]"
[% ELSE %]
[% input.uri %][% IF input.revision %] (r[% input.revision %])[% END %]
[% END %]
[% END;
BLOCK renderDiffUri;
nouri = 1;
FOREACH m IN mappers;
base = m.baseuri;
url = bi1.uri;
path = url.replace(base, '');
IF url.match(base) %]
[% contents %]
[% nouri = 0;
END;
END;
IF nouri;
res = bi1.uri.split(' ');
url = res.0;
branch = res.1;
IF bi1.type == "hg" || bi1.type == "git" %]
[% contents %]
[% ELSE;
contents;
END;
END;
END;
BLOCK renderInputs; %]
Name | Type | Value | Revision | Store path |
[% FOREACH input IN inputs %]
[% input.name %] |
[% type = input.type; inputTypes.$type %] |
[% IF input.type == "build" || input.type == "sysbuild" %]
[% INCLUDE renderFullBuildLink build=input.dependency %]
[% ELSIF input.type == "string" || input.type == "boolean" %]
"[% input.value %]"
[% ELSE %]
[% input.uri %]
[% END %]
|
[% IF input.revision %][% input.revision %][% END %] |
[% input.path %] |
[% END %]
[% END;
BLOCK renderInputDiff; %]
[% IF !nestedDiff %]
Input | Changes |
[% END;
IF !nestLevel;
nestLevel = 0;
END;
IF nestLevel <= 3;
FOREACH bi1 IN inputs1;
deletedInput = 1;
FOREACH bi2 IN inputs2;
IF bi1.name == bi2.name;
IF bi1.type == bi2.type;
IF bi1.value != bi2.value || bi1.uri != bi2.uri %]
[% bi1.name %] | [% INCLUDE renderShortInputValue input=bi1 %] to [% INCLUDE renderShortInputValue input=bi2 %] |
[% ELSIF bi1.uri == bi2.uri && bi1.revision != bi2.revision %]
[% IF bi1.type == "git" %]
[% bi1.name %] | [% INCLUDE renderDiffUri contents=(bi1.revision.substr(0, 6) _ ' to ' _ bi2.revision.substr(0, 6)) %]
|
[% ELSE %]
[% bi1.name %] | [% INCLUDE renderDiffUri contents=(bi1.revision _ ' to ' _ bi2.revision) %]
|
[% END %]
[% ELSIF bi1.dependency.id != bi2.dependency.id || bi1.path != bi2.path %]
[% bi1.name %] | [% INCLUDE renderShortInputValue input=bi1 %] to [% INCLUDE renderShortInputValue input=bi2 %]
[% INCLUDE renderInputDiff inputs1=bi1.dependency.inputs inputs2=bi2.dependency.inputs nestedDiff=1 nestLevel=nestLevel+1 %]
|
[% END %]
[% ELSE %]
[% bi1.name %] | Changed input type from '[% type = bi1.type; inputTypes.$type %]' to '[% type = bi2.type; inputTypes.$type %]' |
[% END;
deletedInput = 0;
END;
END;
IF deletedInput == 1 %]
[% bi1.name %] | Input not present in this build. |
[% END;
END;
END %]
[% END;
BLOCK renderPager %]
[% END;
BLOCK renderShortEvalInput;
IF input.type == "svn" || input.type == "svn-checkout" || input.type == "bzr" || input.type == "bzr-checkout" %]
r[% input.revision %]
[% ELSIF input.type == "git" %]
[% input.revision.substr(0, 7) %]
[% ELSIF input.type == "build" || input.type == "sysbuild" %]
[% input.get_column('dependency') %]
[% ELSE %]
[% input.revision %]
[% END;
END;
BLOCK renderEvals %]
[% IF !jobset && !build %]
Jobset |
[% END %]
# |
Date |
Input changes |
Success |
[% FOREACH e IN evals;
eval = e.eval;
link = c.uri_for(c.controller('JobsetEval').action_for('view'), [eval.id]) %]
[% IF !jobset && !build %]
[% INCLUDE renderFullJobsetName project=eval.get_column('project') jobset=eval.get_column('jobset') %] |
[% END %]
[% eval.id %] |
[% INCLUDE renderDateTime timestamp = eval.timestamp %] |
[% IF e.changedInputs.size > 0;
sep='';
FOREACH input IN e.changedInputs;
sep; %] [% input.name %] → [% INCLUDE renderShortEvalInput input=input;
sep=', ';
END;
ELSE %]
-
[% END %]
|
[% e.nrSucceeded %]
[% e.nrFailed %]
[% IF e.nrScheduled > 0 %]
[% e.nrScheduled %]
[% END %]
|
[% IF e.diff > 0 %]
+[% e.diff %]
[% ELSIF e.diff < 0 && e.nrScheduled == 0 %]
[% e.diff %]
[% END %]
|
[% END;
IF linkToAll %]
More... |
[% END %]
[% END;
BLOCK renderLogLinks %]
(log, raw, tail)
[% END;
BLOCK makeLazyTab %]
[% END;
BLOCK makePopover %]
content, 'data-placement' => placement || 'bottom') %]>
[% title %]
[% END;
%]