[% WRAPPER layout.tt title="Job ‘$project.name:$jobset.name:$job.name’ build $id" %] [% PROCESS common.tt %] [% PROCESS "product-list.tt" %] [% USE HTML %] [% USE Date %] [% project = build.project %] [% jobset = build.jobset %] [% job = build.job %] [% BLOCK renderBuildSteps %] [% FOREACH step IN build.buildsteps -%] [% IF ( type == "All" ) || ( type == "Failed" && step.status != 0 ) || ( type == "Running" && step.busy == 1 ) -%] [% has_log = log_exists(step.drvpath); log = c.uri_for('/build' build.id 'nixlog' step.stepnr); -%] [% END %] [% END %]
NrWhatDurationMachineStatus
[% step.stepnr %] [% IF step.type == 0 %] Build of [% step.outpath %] [% ELSE %] Substitution of [% step.outpath %] [% END %] [% IF step.busy == 0 %] [% INCLUDE renderDuration duration = step.stoptime - step.starttime %] [% ELSE %] [% IF build.finished %] [% INCLUDE renderDuration duration = build.stoptime - step.starttime %] [% ELSE %] [% INCLUDE renderDuration duration = curTime - step.starttime %] [% END %] [% END %] [% step.machine.split('@').1 %] [% IF step.busy == 1 %] [% IF build.finished %] Aborted [% ELSE %] Building [% END %] [% ELSIF step.status == 0 %] Succeeded [% ELSE %] Failed: [% HTML.escape(step.errormsg) %] [% END %] [% IF has_log %] (log, raw, tail) [% END %]
[% END %] [% IF flashMsg %]

[% flashMsg %]

[% END %]
[% INCLUDE renderBuildStatusIcon size=128, build=build %] [% IF build.releasename %] [% ELSE %] [% END %] [% IF build.finished %] [% END %] [% IF log_exists(build.drvpath) %] [% END %]
Build ID: [% build.id %]
Release name: [% HTML.escape(build.releasename) %]
Nix name: [% build.nixname %]
Status: [% INCLUDE renderStatus build=build %]
System: [% build.system %]
Duration: [% IF build.iscachedbuild %] (cached[% IF cachedBuild %] from [% INCLUDE renderFullBuildLink build=cachedBuild %][% END %]) [% ELSE %] [% INCLUDE renderDuration duration = build.stoptime - build.starttime %] finished at [% INCLUDE renderDateTime timestamp = build.stoptime %] [% END %]
Logfile: pretty raw tail
[% 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.finished %]

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

[% IF prevSuccessfulBuild && firstBrokenBuild && firstBrokenBuild.id != build.id %] [% END %] [% IF prevSuccessfulBuild && firstBrokenBuild && firstBrokenBuild.id != build.id %][% END %] [% IF prevSuccessfulBuild && firstBrokenBuild && firstBrokenBuild.id != build.id %][% END %]
Last successful build [% INCLUDE renderDateTime timestamp = prevSuccessfulBuild.timestamp %]First broken build [% INCLUDE renderDateTime timestamp = firstBrokenBuild.timestamp %] log diff This build [% INCLUDE renderDateTime timestamp = build.timestamp %] log diff
[% INCLUDE renderBuildStatusIcon build=prevSuccessfulBuild size=32 %] [% INCLUDE renderFullBuildLink build=prevSuccessfulBuild, hideProjectName=1, hideJobsetName=1 %][% INCLUDE renderBuildStatusIcon build=firstBrokenBuild size=32 %] [% INCLUDE renderFullBuildLink build=firstBrokenBuild, hideProjectName=1, hideJobsetName=1 %][% INCLUDE renderBuildStatusIcon build=build size=32 %] [% INCLUDE renderFullBuildLink build=build, hideProjectName=1, hideJobsetName=1 %]
[% INCLUDE renderInputDiff build1=prevSuccessfulBuild , build2=firstBrokenBuild %][% 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 %]

Information

[% IF build.nixexprinput %] [% END %] [% IF build.releasename %] [% END %] [% IF pathHash %] [% END %] [% IF build.finished && build.buildstatus != 4 %] [% IF build.iscachedbuild && cachedBuild %] [% END %] [% END %] [% IF !build.finished %] [% END %] [% IF build.finished && build.buildproducts %] [% END %]
Build ID: [% build.id %]
Status: [% INCLUDE renderStatus build=build %]
Project: [% INCLUDE renderProjectName project=project.name %]
Jobset: [% INCLUDE renderJobsetName project=project.name jobset=jobset.name %]
Job name: [% INCLUDE renderJobName project=project.name jobset=jobset.name job=job.name %]
Nix expression: file [% HTML.escape(build.nixexprpath) %] in input [% HTML.escape(build.nixexprinput) %]
Nix name: [% build.nixname %]
Release name: [% HTML.escape(build.releasename) %]
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 %] [% IF drvAvailable %] (build-time dependencies) [% END %]
Output store path: [% build.outpath %] [% IF available %] (runtime dependencies) [% END %]
Output store path hash: [% pathHash %]
Time added: [% INCLUDE renderDateTime timestamp = build.timestamp %]
Cached build: [% INCLUDE renderFullBuildLink build=cachedBuild %]
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 %]
Priority: [% build.priority %]
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 %]

Build inputs

[% FOREACH input IN build.inputs -%] [% END -%]
NameTypeValueRevisionStore path
[% 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 %]

[% IF prevBuild %]

Changes since previous build: [% INCLUDE renderFullBuildLink build=prevBuild, hideProjectName=1, hideJobsetName=1 %]

[% INCLUDE renderInputDiff build2=build , build1=prevBuild %] [% END %]
[% IF relatedbuilds %]

Related builds

The following builds are part of the same jobset evaluation that produced this build.

[% INCLUDE renderBuildList builds=relatedbuilds hideProjectName=1 hideJobsetName=1 %]
[% END %] [% IF build.buildsteps %]

All build steps

[% INCLUDE renderBuildSteps type="All" %]
[% END %] [% IF build.dependents %]

Used by

The following builds have used this build as an input:

[% FOREACH input IN build.dependents -%] [% END -%]
BuildInput nameSystemTimestamp
[% INCLUDE renderFullBuildLink build=input.build %] [% input.name %] [% input.build.system %] [% INCLUDE renderDateTime timestamp = input.build.timestamp %]
[% END %] [% IF prevBuilds %]

Build time history (in seconds)

Store path size history (in MB)

[% END %]
[% END %]