[% USE date; USE String; USE HTML; USE Math; USE mibs=format("%.2f"); BLOCK renderDateTime; date.format(timestamp, '%Y-%m-%d %H:%M:%S'); END; BLOCK renderRelativeDate; ago = date.now - timestamp; IF ago >= 0 && ago < 60; THEN; ago _ 's ago'; ELSIF ago >= 0 && ago < 60 * 60; THEN; Math.int(ago / 60) _ 'm ago'; ELSIF ago >= 0 && ago < 24 * 60 * 60; THEN; Math.int(ago / (60 * 60)) _ 'h ago'; ELSIF ago >= 0 && ago < 7 * 24 * 60 * 60; THEN; Math.int(ago / (24 * 60 * 60)) _ 'd ago'; ELSE; date.format(timestamp, '%Y-%m-%d'); END; 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 %]
[% END %] [% IF showSchedulingInfo %] | [% END %] [% IF !hideJobName %] | Job | [% END %][% IF showSchedulingInfo %]Queued at[% ELSE %]Finished at[% END %] | Package/release name | System | [% IF showDescription %]Description | [% END %]
---|---|---|---|---|---|---|
[% INCLUDE renderBuildStatusIcon size=16 busy=(showSchedulingInfo ? 1 : 0) buildstatus=build.buildstatus %] | [% END %] [% IF showSchedulingInfo %][% IF build.busy %]Started[% ELSE %]Queued[% END %] | [% END %] [% IF !hideJobName %][%build.get_column("project")%]:[%build.get_column("jobset")%]:[%build.get_column("job")%] | [% END %][% t = showSchedulingInfo ? build.timestamp : build.stoptime; IF t; INCLUDE renderRelativeDate timestamp=(showSchedulingInfo ? build.timestamp : build.stoptime); ELSE; "-"; END %] | [% !showSchedulingInfo and build.get_column('releasename') ? build.get_column('releasename') : build.nixname %] | [% build.system %] | [% IF showDescription %][% build.description %] | [% END %]
More... |
Name | Type | Value | Revision | Store path |
---|---|---|---|---|
[% input.name %] | [% type = input.type; inputTypes.$type %] | [% IF input.type == "build" || input.type == "sysbuild" %] [% INCLUDE renderFullBuildLink build=input.dependency %] [% ELSIF input.type == "string" %] "[% HTML.escape(input.value) %]" [% ELSIF input.type == "nix" || input.type == "boolean" %] [% HTML.escape(input.value) %] [% ELSE %] [% HTML.escape(input.uri) %] [% END %] | [% IF input.revision %][% HTML.escape(input.revision) %][% END %] | [% input.path %] |
Input | Changes |
---|---|
[% bi1.name %] | [% INCLUDE renderShortInputValue input=bi1 %] to [% INCLUDE renderShortInputValue input=bi2 %] |
[% bi1.name %] | [% INCLUDE renderDiffUri contents=(bi1.revision.substr(0, 6) _ ' to ' _ bi2.revision.substr(0, 6)) %] |
[% bi1.name %] | [% INCLUDE renderDiffUri contents=(bi1.revision _ ' to ' _ bi2.revision) %] |
[% 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 %] |
[% bi1.name %] | Changed input type from '[% type = bi1.type; inputTypes.$type %]' to '[% type = bi2.type; inputTypes.$type %]' |
[% bi1.name %] | Input not present in this build. |
Jobset | [% END %]Date | Input changes | Success | |
---|---|---|---|---|
[% INCLUDE renderFullJobsetName project=eval.get_column('project') jobset=eval.get_column('jobset') %] | [% END %][% INCLUDE renderRelativeDate 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 %] [% IF e.nrFailed > 0 %] [% e.nrFailed %] [% END %] [% IF e.nrScheduled > 0 %] [% e.nrScheduled %] [% END %] | [% IF e.diff > 0 %] +[% e.diff %] [% ELSIF e.diff < 0 && e.nrScheduled == 0 %] [% e.diff %] [% END %] |
More... |
Name | Description | Last evaluated | Success | ||
---|---|---|---|---|---|
[% IF j.get_column('nrscheduled') > 0 %] [% ELSIF j.get_column('nrfailed') == 0 %] [% ELSIF j.get_column('nrfailed') > 0 && j.get_column('nrsucceeded') > 0 %] [% ELSE %] [% END %] | [% IF showProject; INCLUDE renderFullJobsetName project=j.get_column('project') jobset=j.name inRow=1; ELSE; INCLUDE renderJobsetName project=j.get_column('project') jobset=j.name inRow=1; END %] | [% HTML.escape(j.description) %] | [% IF j.lastcheckedtime; INCLUDE renderDateTime timestamp = j.lastcheckedtime; ELSE; "-"; END %] | [% IF j.get_column('nrtotal') > 0 %] [% successrate = ( j.get_column('nrsucceeded') / j.get_column('nrtotal') )*100 %] [% IF j.get_column('nrscheduled') > 0 %] [% class = 'label' %] [% ELSIF successrate < 25 %] [% class = 'label label-important' %] [% ELSIF successrate < 75 %] [% class = 'label label-warning' %] [% ELSIF successrate <= 100 %] [% class = 'label label-success' %] [% END %] [% END %][% successrate FILTER format('%d') %]% | [% IF j.get_column('nrsucceeded') > 0 %] [% j.get_column('nrsucceeded') %] [% END %] [% IF j.get_column('nrfailed') > 0 %] [% j.get_column('nrfailed') %] [% END %] [% IF j.get_column('nrscheduled') > 0 %] [% j.get_column('nrscheduled') %] [% END %] |