Build & Artifact Management
Automated Builds
Summary
A deployable artifact comes only from an automated pipeline, traceable back to the specific commit that produced it.
Standards
std-del-automated-builds-01A deployable artifact MUST be produced only by an automated build pipeline.std-del-automated-builds-02A deployable artifact MUST NOT be assembled or uploaded manually.std-del-automated-builds-03A build MUST be triggered from, and remain traceable to, a specific, identifiable commit in a codebase's designated repository.std-del-automated-builds-04An artifact built from an unreviewed or unmerged change MUST NOT be eligible for deployment beyond a development environment.
Related Standards
Implements These Principles
Build Inputs
Summary
A build runs from declared pipeline steps in a clean, isolated environment with a pinned toolchain and deterministic inputs.
Standards
std-del-build-inputs-01A build MUST NOT depend on a manual step or on state specific to the machine or account that ran it.std-del-build-inputs-02Every step required to produce a build MUST be captured in the automated pipeline itself.std-del-build-inputs-03A build MUST run in a clean, isolated environment free of state left over from a previous build, so its result depends only on its declared inputs.std-del-build-inputs-04A build's toolchain, such as a compiler, language runtime, or build tool, MUST be pinned to a specific version, so building the same source produces a consistent result regardless of when or where it runs.std-del-build-inputs-05A build step that introduces non-deterministic content into its own output SHOULD be avoided where it would prevent verifying two builds of the same source as identical.
Related Standards
Implements These Principles
Artifact Identity & Immutability
Summary
A built artifact has an immutable reference and a unique, traceable identifier; changes produce new builds, and pre-release artifacts remain distinguishable from released artifacts.
Standards
std-del-artifact-identity-immutability-01An artifact MUST be assigned a unique, traceable identifier at build time, linking it back to the source commit and build run that produced it.std-del-artifact-identity-immutability-02A released artifact MUST NOT be modified, patched, or reassembled after it is built.std-del-artifact-identity-immutability-03A required change to a released artifact MUST be delivered as a new build carrying a new identifier.std-del-artifact-identity-immutability-04A released artifact MUST NOT be referenced by a floating or mutable label capable of later resolving to different content.std-del-artifact-identity-immutability-05An artifact built for testing or validation ahead of release, such as a snapshot or release candidate build, MUST be identifiable as such.std-del-artifact-identity-immutability-06An artifact built for testing or validation ahead of release, such as a snapshot or release candidate build, MUST NOT be consumed as a released artifact.
Related Standards
Implements These Principles
Artifact Repository
Summary
A built artifact is published to an approved repository only by the automated pipeline, with write access restricted to the pipeline and read access limited to required consumers.
Standards
std-del-artifact-repository-01A built artifact MUST be stored in an approved artifact repository.std-del-artifact-repository-02A built artifact MUST NOT be distributed solely as a build job's own output or attachment.std-del-artifact-repository-03A new artifact version MUST be published to the repository only by an automated build pipeline.std-del-artifact-repository-04Write access to the repository MUST be restricted to the automated pipeline's own identity.std-del-artifact-repository-05Read access SHOULD be scoped to the teams and services that need it.
Related Standards
Implements These Principles
Integrity & Provenance
Summary
An artifact's checksum and build provenance remain verifiable, and any signature stays verifiable through deployment.
Standards
std-del-integrity-provenance-01An artifact MUST be verifiable against a checksum or digest recorded at build time, so tampering or corruption after publication is detectable.std-del-integrity-provenance-02Where the artifact repository or runtime supports it, an artifact SHOULD be cryptographically signed at build time.std-del-integrity-provenance-03Where an artifact is signed, its signature MUST be preserved through storage and promotion and verified before deployment.std-del-integrity-provenance-04An artifact's build provenance, including its source commit, pipeline run, any base runtime image it was built from, and software bill of materials, MUST be retained and associated with the artifact it describes.
Related Standards
Implements These Principles
Artifact Promotion
Summary
A verified artifact is promoted unchanged through every subsequent environment, with each promotion recorded.
Standards
std-del-artifact-promotion-01An artifact that has passed verification in one environment MUST be promoted unchanged into every subsequent environment.std-del-artifact-promotion-02Each promotion of an artifact into an environment MUST be recorded, preserving traceability from the artifact's identifier back to its source and build, and forward to the environment it was promoted into.
Related Standards
Implements These Principles
Artifact Versioning
Summary
A published artifact uses a documented versioning scheme that communicates compatibility, with Semantic Versioning used where suitable.
Standards
std-del-artifact-versioning-01An artifact published for another team or service to consume, such as a shared library, package, or base image, MUST use a documented versioning scheme that communicates compatibility.std-del-artifact-versioning-02Where Semantic Versioning is used, a breaking change MUST be released as a new major version.std-del-artifact-versioning-03Where Semantic Versioning is used, a backward-compatible addition of functionality MUST be released as a new minor version.std-del-artifact-versioning-04Where Semantic Versioning is used, a backward-compatible bug fix MUST be released as a new patch version.