TeamCity имеет некоторую поддержку предварительно проверенный коммит ; если ваша команда разработчиков использует поддерживаемую IDE, вы можете посмотреть на это.
В моей компании мы не слишком беспокоимся об этом - наш шаблон выглядит примерно так.
(a) каждый разработчик имеет свою собственную конфигурацию проекта в TeamCity, корни которой указывают на свою собственную песочницу. Здесь им разрешено делать все, что им нравится.
(b) команда разработчиков имеет интегрированную изолированную программную среду, в которую вносятся все изменения. Проект инкапсулирует конфигурации, которые отслеживают эту ветвь в системе контроля версий. Dev Leads может придумать правила здесь, но это правило почти всегда "оно должно оставаться зеленым". Я бы посмотрел точный процент чистых сборок - это не идеальная запись, но достаточно высокая, чтобы у меня никогда не было соблазна настаивать на том, чтобы разработчики были более дисциплинированными в отношении выполнения тестов.
(c) фактическая доставка происходит из основного потока, который должен оставаться зеленым (тм). Ответственный за разработку отвечает за предоставление четкого снимка интеграции в основной поток по четко определенному расписанию. Этот проект является тем, который на самом деле генерирует установщики, которые поставляются для тестирования, биты, которые идут на условное депонирование и т. Д.
Одна из причин, по которой вы можете получить более агрессивную политику, чем у нас, заключается в том, что наш цикл сборки медленный - порядка четырех часов. Если бы мы были на порядок меньше, с низким уровнем успеха, я мог бы привести другой случай.