Skip to content
Casheeno
All posts

CI that gates releases instead of just running tests

A pipeline that reports failures nobody blocks on is theatre. What we make mandatory, and what we deliberately let through.

By

CI that gates releases instead of just running tests

Most teams have CI. Fewer have CI that can stop a bad release. The difference is not tooling - it is whether anyone is allowed to merge past a red build.

What blocks a merge

  • Unit and API tests on the touched service
  • A lint and formatting pass, so review is about logic
  • A dependency audit for known advisories
  • A build of the actual artefact you intend to ship

What runs but does not block

Full end-to-end suites and performance runs are slower and flakier. They run on main and page us on failure, rather than holding up every pull request.

Speed is a correctness feature

A pipeline that takes forty minutes will be worked around. We cache aggressively and parallelise, because a fast gate is a gate people respect.

A red build must mean something

We track flake rate and fix flaky tests as bugs. The moment a failure might be noise, the gate stops working - people start re-running until it is green.