We have a huge monolith project and every day a lot of developers check-in their code to the project. As you may guess working on a project like this is really hard especially while lots of developers working as the same time on it. During the day there are often check-ins and building the project really takes time. Under these conditions carrying on CI/CD process is really hard but the hardest thing is that if a developer check-ins that causes to fail build, since check-ins done often it brings along lots of check-ins accumulate. Actually I know what is missing but don't know the best practice solution. I believe what is missing is as it's said in the book Continuous Delivery by Jez Humble Chapter 3, Essential Practices section
Don't Check In on a Broken Build
We use Jenkins for CI/CD and we use TFS for SCM. Currently, our Jenkins version is 2.204.2 and TFS Plugin version is 5.157.0
Could you help me about how to apply these practice? How do I prevent check-in o a broken build? It's crucial because everday we are looking for who broke the build and say to him/her "Hey, your last check-in broke the build can you check it.. Because everyone is waiting for you."