If CI is slow or flaky, developers skip it mentally. Target fast feedback on pull requests: unit tests, lint, and type checks before heavy suites.
Separate “must pass to merge” from “nightly.” Not every legacy module needs the same bar on day one; improve coverage incrementally.
Use environments that mirror production topology enough to catch config mistakes—queues, cron, and mail are common gotchas.
Automate rollbacks and database migrations with a playbook. Confidence to deploy often beats big-bang releases.