Thanks for the clarification! fwiw Uber's monorepo treats CI and merges as the same, and deployments separately [0].
What it comes down to is engineering a solution to "mitigate a broken main" (automatic reverts) or a solution to "keep main green" (gating commits on a green build/test).
[0]: https://eng.uber.com/research/keeping-master-green-at-scale/