Команды разработчиков часто страдают из-за временных ошибок сборок в управлении версиями.Производительность всей команды может быть остановлена при попытке восстановления после сборки, поврежденной одним человеком.
Существует ли программное обеспечение, позволяющее размещать Git таким образом, что предотвращает нарушение сборок в управлении версиямине принимая коммиты, которые не проходят тесты в первую очередь?Например, сценарий использования может выглядеть следующим образом:
- Программное обеспечение работает на сервере, который непрерывно извлекает версии из репозиториев Git, опубликованных разработчиками.
- Для каждой извлеченной версии, программное обеспечениестроит ревизию и проверяет, проходит ли она юнит-тесты.
- Если он проходит тесты, ревизия объединяется в "стабильную" ветвь.
- Если она не проходит тесты, она отклоняется, и ревизия не объединяется в "конюшня "ветка.Разработчик вынужден исправить редакцию и повторно отправить ее.
- Разработчики по умолчанию извлекают "стабильную" ветвь, которая никогда не должна нарушаться - в том смысле, что тесты не дают ошибок - иболее продуктивны, поскольку они проводят меньше времени, будучи заблокированными сломанными сборками.И полезность такой системы возрастает с увеличением размера команды.
Несколько замечаний:
- Хиты pre-commit Git и аналогичные не подходят в этом случае.Решение должно быть автоматическим и принудительным на стороне сервера для каждого коммита.
- Ищите решение, которое было реализовано и продуманно настолько, насколько это возможно, вместо того, чтобы писать такую систему, как эта, с нуля.