"$schema": "http://json-schema.org/draft-04/schema" "$id": "https://nix.dev/manual/nix/latest/protocols/json/schema/build-result-v1.json" title: Build Result description: | This schema describes the JSON representation of Nix's `BuildResult` type, which represents the result of building a derivation or substituting store paths. Build results can represent either successful builds (with built outputs) or various types of failures. oneOf: - "$ref": "#/$defs/success" - "$ref": "#/$defs/failure" type: object required: - success - status properties: timesBuilt: type: integer minimum: 0 title: Times built description: | How many times this build was performed. startTime: type: integer minimum: 0 title: Start time description: | The start time of the build (or one of the rounds, if it was repeated), as a Unix timestamp. stopTime: type: integer minimum: 0 title: Stop time description: | The stop time of the build (or one of the rounds, if it was repeated), as a Unix timestamp. cpuUser: type: integer minimum: 0 title: User CPU time description: | User CPU time the build took, in microseconds. cpuSystem: type: integer minimum: 0 title: System CPU time description: | System CPU time the build took, in microseconds. "$defs": success: type: object title: Successful Build Result description: | Represents a successful build with built outputs. required: - success - status - builtOutputs properties: success: const: true title: Success indicator description: | Always true for successful build results. status: type: string title: Success status description: | Status string for successful builds. enum: - "Built" - "Substituted" - "AlreadyValid" - "ResolvesToAlreadyValid" builtOutputs: type: object title: Built outputs description: | A mapping from output names to their build trace entries. additionalProperties: "$ref": "build-trace-entry-v1.yaml" failure: type: object title: Failed Build Result description: | Represents a failed build with error information. required: - success - status - errorMsg properties: success: const: false title: Success indicator description: | Always false for failed build results. status: type: string title: Failure status description: | Status string for failed builds. enum: - "PermanentFailure" - "InputRejected" - "OutputRejected" - "TransientFailure" - "CachedFailure" - "TimedOut" - "MiscFailure" - "DependencyFailed" - "LogLimitExceeded" - "NotDeterministic" - "NoSubstituters" - "HashMismatch" errorMsg: type: string title: Error message description: | Information about the error if the build failed. isNonDeterministic: type: boolean title: Non-deterministic flag description: | If timesBuilt > 1, whether some builds did not produce the same result. Note that 'isNonDeterministic = false' does not mean the build is deterministic, just that we don't have evidence of non-determinism.