The old builder executes every instruction in order on one goroutine. BuildKit builds a graph, runs independent branches concurrently, and skips stages nothing depends on. The concurrency is…
composer.json describes what is acceptable; composer.lock describes what was tested. Deploys that run update rather than install are resolving fresh on every release and shipping something no one…
Docker caches per instruction, and the cache is invalidated by the first changed file. Copying the whole source before installing dependencies means every code change reinstalls everything. The…
The header is one line. The work is finding out what it will break — which means report-only for weeks, and reading violations that are mostly not your…
A pipeline that downloads the same eighty packages on every push is spending most of its allowance on the network, and the fix is four lines. The named…
A deploy script without it continues after a failed command, so a failed composer install is followed by a successful symlink swap and a broken site reported as…
Apache, Nginx, PHP, MySQL, Redis, Beanstalkd and a mail catcher, on a laptop. Onboarding measured in minutes rather than days, and what it costs to run.
Deploying by pulling into the live directory means the site is briefly running half of one release and half of another, and rolling back means pulling again and…