Comparison
Build artefactvsBuild once, deploy many
Build artefact
the pipeline produces one file with one version, and everything downstream refers to that file rather than rebuilding.
The versioned output of a build — an image, an archive, a package — that later stages consume. Treating it as the unit of promotion is what makes environments comparable, because staging and production are then demonstrably the same bytes. A pipeline that rebuilds per environment has no such guarantee and is where 'it passed in staging' stops meaning anything.
Full entry →Build once, deploy many
the exact bytes tested in staging are the bytes that run in production, with only the configuration differing.
The rule that an artefact is built exactly once and then promoted unchanged through environments, with environment differences supplied as configuration at run time. It is what gives testing in a lower environment any evidential value. Breaking it is usually accidental — an environment-specific build argument, a rebuild triggered by the deploy job — and the consequence is that every environment is a separate, untested thing.
Full entry →