[% WRAPPER layout.tt title="Build $id of job $project.name:$jobset.name:$job.name" %]
[% PROCESS common.tt %]
[% PROCESS "product-list.tt" %]
[% USE HTML %]
[% USE Date %]
[% project = build.project %]
[% jobset = build.jobset %]
[% job = build.job %]
[% BLOCK renderOutputs %]
[% start=1; FOREACH output IN outputs %]
[% IF !start %],
[% END; start=0; output.path %]
[% END %]
[% END %]
[% BLOCK renderBuildSteps %]
[% INCLUDE renderBuildStatusIcon size=128, build=build %]
|
Build ID: |
[% build.id %] |
Status: |
[% INCLUDE renderStatus build=build icon=0 %] |
System: |
[% build.system %] |
[% IF build.releasename %]
Release name: |
[% HTML.escape(build.releasename) %] |
[% ELSE %]
Nix name: |
[% build.nixname %] |
[% END %]
[% IF eval %]
Part of: |
evaluation [% eval.id %]
[% IF nrEvals > 1 +%] (and [% nrEvals - 1 %] others)[% END %]
|
[% END %]
[% IF build.iscachedbuild %]
Cached from: |
[% INCLUDE renderFullBuildLink build=cachedBuild %] |
[% END %]
Duration: |
[% actualBuild = build.iscachedbuild ? cachedBuild : build;
INCLUDE renderDuration duration = actualBuild.stoptime - actualBuild.starttime %]; finished at [% INCLUDE renderDateTime timestamp = actualBuild.stoptime
%] |
[% IF log_exists(build.drvpath) %]
Logfile: |
pretty
raw
tail
|
[% END %]
|
[% IF c.user_exists && available %]
[% END %]
[% IF build.buildproducts %]
Build products
[% IF !available %]
Note: this build is no longer available.
[% END %]
[% INCLUDE renderProductList latestRoot=['/job' build.project.name build.jobset.name build.job.name 'latest'] %]
[% END %]
[% IF build.busy %]
Running build steps
[% INCLUDE renderBuildSteps type="Running" %]
[% END %]
[% IF build.finished %]
[% IF build.buildsteps && build.buildstatus != 0 && build.buildstatus != 6 %]
Failed build steps
[% INCLUDE renderBuildSteps type="Failed" %]
[% END %]
[% IF prevSuccessfulBuild %]
Changes
Last successful build [% INCLUDE renderDateTime timestamp = prevSuccessfulBuild.timestamp %] |
[% IF prevSuccessfulBuild && firstBrokenBuild && firstBrokenBuild.id != build.id %]
First broken build [% INCLUDE renderDateTime timestamp = firstBrokenBuild.timestamp %]
log diff
|
[% END %]
This build [% INCLUDE renderDateTime timestamp = build.timestamp %]
log diff
|
[% INCLUDE renderBuildStatusIcon build=prevSuccessfulBuild size=32 %] [% INCLUDE renderFullBuildLink build=prevSuccessfulBuild, hideProjectName=1, hideJobsetName=1 %] |
[% IF prevSuccessfulBuild && firstBrokenBuild && firstBrokenBuild.id != build.id %][% INCLUDE renderBuildStatusIcon build=firstBrokenBuild size=32 %] [% INCLUDE renderFullBuildLink build=firstBrokenBuild, hideProjectName=1, hideJobsetName=1 %] | [% END %]
[% INCLUDE renderBuildStatusIcon build=build size=32 %] [% INCLUDE renderFullBuildLink build=build, hideProjectName=1, hideJobsetName=1 %] |
|
[% IF prevSuccessfulBuild && firstBrokenBuild && firstBrokenBuild.id != build.id %][% INCLUDE renderInputDiff build1=prevSuccessfulBuild , build2=firstBrokenBuild %] | [% END %]
[% INCLUDE renderInputDiff build1=prevSuccessfulBuild , build2=build %] |
[% END %]
[% IF build.errormsg && build.buildstatus != 5 %]
Nix error output
[% HTML.escape(build.errormsg) %]
[% END %]
[% END %]
[% IF logtext %]
Log
[% HTML.escape(logtext) %]
[% END %]
[% IF build.nixexprinput %]
Nix expression: |
file [% HTML.escape(build.nixexprpath) %] in input [% HTML.escape(build.nixexprinput) %] |
[% END %]
Nix name: |
[% build.nixname %] |
Short description: |
[% IF build.description %][% HTML.escape(build.description) %][% ELSE %](not given)[% END %] |
Long description: |
[% IF build.longdescription %][% HTML.escape(build.longdescription) %][% ELSE %](not given)[% END %] |
License: |
[% IF build.license %][% HTML.escape(build.license) %][% ELSE %](not given)[% END %] |
Homepage: |
[% IF build.homepage %] build.homepage) %]>[% HTML.escape(build.homepage) %][% ELSE %](not given)[% END %] |
Maintainer(s): |
[% IF build.maintainers %][% HTML.escape(build.maintainers) %][% ELSE %](not given)[% END %] |
System: |
[% build.system %] |
Derivation store path: |
[% build.drvpath %] |
Output store paths: |
[% INCLUDE renderOutputs outputs=build.buildoutputs %] |
Time added: |
[% INCLUDE renderDateTime timestamp = build.timestamp %] |
[% IF build.finished && build.buildstatus != 4 %]
Build started: |
[% IF build.starttime %][% INCLUDE renderDateTime timestamp = build.starttime %][% ELSE %](cached build)[% END %] |
Build finished: |
[% IF build.stoptime %][% INCLUDE renderDateTime timestamp = build.stoptime %][% ELSE %](cached build)[% END %] |
[% END %]
[% IF !build.finished %]
Priority: |
[% build.priority %] |
[% END %]
[% IF build.finished && build.buildproducts %]
Availability: |
[% IF !available %]
Build output is no longer available
[% ELSIF build.keep %]
Build output will be kept permanently
[% ELSE %]
Build output is available, but may be garbage-collected
[% END %]
|
[% END %]
[% IF build.buildsteps %]
[% INCLUDE renderBuildSteps type="All" %]
[% END %]
[% IF build.dependents %]
The following builds have used this build as an input:
Build | Input name | System | Timestamp |
[% FOREACH input IN build.dependents %]
[% INCLUDE renderFullBuildLink build=input.build %] |
[% input.name %] |
[% input.build.system %] |
[% INCLUDE renderDateTime timestamp = input.build.timestamp %] |
[% END %]
[% END %]
[% IF prevBuilds %]
Build time history (in seconds)
Store path size history (in MB)
[% END %]
[% IF drvAvailable %]
[% END %]
[% IF available %]
[% END %]
[% END %]