В нашей очень большой команде мы также делаем гейт в основной ветке и CI в ветках dev/feature (многие из них).
Gated предлагает большую защиту для ветки, но с очень большой командой и большой базой кода он может создать резервную копию очереди, если вся команда разработчиков вносит изменения в эту ветку.
CI обеспечивает защиту с немного большим доверием к разработчикам, также зная, что любые проблемы будут быстро обнаружены. Это немного более оптимистично и позволяет команде двигаться намного быстрее, что подходит для ветки разработки.
В обоих случаях разработчики запускают модульные тесты и проверяют код, который они изменяют. CI (влияет на команду) и Gated (потребляет время в очереди) не должны заменять тестирование — должно быть правдоподобное объяснение более сложное, чем я не пробовал.
Вся команда находится в ветках feature/dev, использующих CI в течение большей части цикла, и в ветках более высокого уровня с гораздо большим количеством людей во время стабилизации конечной игры — оба этих последних условия поддерживают случай для gated.
В большой команде нам также необходимо, чтобы сборки CI и скользящие тесты выполнялись параллельно, чтобы быстрее находить проблемы, когда время сборки не является тривиальным, а полные наборы тестов также не являются тривиальными. В этом сценарии люди регистрируются, CI собирает последнюю партию регистрации, запускает сборку, а когда сборка падает, другая машина загружает и запускает наборы тестов.
person
bryanmac
schedule
01.10.2011