Running checks automatically.
WHAT TO RUN ON EVERY CHANGE
Fast checks: formatting, static analysis, unit tests.
WHAT TO RUN BEFORE MERGING
The full test suite.
WHAT TO RUN LESS FREQUENTLY
Slow tests Tests against external services Broad end-to-end tests
WHY SEPARATE THEM
So the fast feedback stays fast.
WHAT TO SET UP
A database for tests, created and destroyed each run.
WHAT TO NEVER USE
Production data Production services
WHAT TO SUBSTITUTE
External APIs, mail, payment gateways.
WHY
So tests do not send real messages or charge real cards.
WHAT TO REPORT
Which tests failed, and why, clearly.
WHAT TO DO ABOUT A FAILING BUILD
Fix it immediately, before other work continues.
WHY
A broken main branch blocks everyone and normalises failure.
WHAT TO MEASURE
How long the pipeline takes.
WHAT TO DO IF IT IS SLOW
Parallelise, cache, and move slow checks elsewhere.