Deployment
The branch condition, the published image, and the rollback prepared in advance.
A manual deployment almost never fails the first time. It fails the twelfth time, on a Thursday evening, when the one person who knows the exact order of commands is on vacation and their replacement swaps two steps. A procedure written in a DEPLOIEMENT.md file always ends up diverging from what people actually do, because nothing checks that it's up to date. A workflow, on the other hand, is the procedure: if it's wrong, it fails, and you know about it.
Automating a deployment, however, doesn't mean adding one last job to your test pipeline. Three questions must be settled before you write a single line: under exactly what condition does the deployment run, which precise artifact is published, and how do you return to the previous state. The third is the one most often put off until later, and it's the one that costs the most on the day it's missing. An automatic deployment without a prepared rollback only speeds up the delivery of incidents to production.
The Trigger Condition
The deployment must run in one case and one case only: a commit merged into the main branch, with all checks passing.
Comments
Comments are powered by GitHub Discussions
Sign in with GitHub to join the discussion