wtf( )unctionsystem design, drawn
← all problemsDeploymentMedium

The build that passed test and failed production

The pipeline builds from source into staging, runs the suite, then builds from source again into production. Same commit, same script, two builds.

A transitive dependency published a new patch between the two builds. Staging tested one thing and production runs another, and every log says the same commit hash.

Make the thing you tested and the thing you ship the same thing.
Components — tap one, then tap a slot on the diagram
!Staging and production ran different code from the same commit, and every log showed the same hash.

Outside every boundary: Production (built again; FAILED: different build), Commit, Staging (tested here), an empty slot for the built once, from the commit Connections: Commit calls built once, from the commit — build once (step 1) built once, from the commit calls Staging — deploy it (step 2) built once, from the commit calls Production — promote the same one (step 3)

Productionbuilt againdifferent build
Commit
Stagingtested here