October brought configurable runner sizes, which turns a slow pipeline into a pricing question rather than an engineering one. Measuring what a job actually uses before upgrading is…
A workflow with a path filter does not run when nothing matched, and a required status check that never runs blocks the pull request forever. The duplicate-workflow trick…
The default token has write access to most of the repository, and declaring a permissions block switches the job to exactly what is listed. Declaring it at the…
A layer cache is invalidated by any change to the file it depends on; a cache mount is storage that outlives the layer entirely. The syntax directive at…
A parallel suite gets a database per worker automatically and shares every other backing service, which produces failures that look exactly like ordering bugs. Redis is the one…
2.4 in August adds an audit command that checks the lock file against the Packagist advisory database, which several separate tools had been doing. Reading the lock file…
The build context is everything not excluded, so a missing .dockerignore uploads the git history, the node modules and the local database to the daemon before anything is…