Наша компания (внутренние проекты) использовала контроль версий (TFS, теперь 2015) для простого отслеживания выпущенного кода — я использовал ветвление и слияние, и это полностью изменило то, как мы смотрим на узкие места в конвейере разработки и в целом был хорошо принят, но теперь я ищу следующий шаг.
Наш код состоит из одной большой части программного обеспечения и нескольких сопутствующих бизнес-приложений.
У нас есть четыре среды, которые мы постоянно поддерживаем, и наш «конвейер» примерно такой.
- Разработчик работает локально.
- Отправляет код в среду «Разработки» (чтобы мы все могли посмотреть на код, посмотреть, насколько хорошо он интегрируется в среду и т. д.)
- Когда тестирование готово, мы нажимаем «Тест» — это код, который был одобрен для перемещения вверх по конвейеру, и поэтому среда намного более стабильна, чем «Разработка».
- Затем мы передаем его на сервер UAT, который, по сути, является имитацией живого сервера, чтобы быть максимально стабильным и репрезентативным для живого выпуска. Код, одобренный для перемещения сюда, встречается НЕ часто.
- Наконец, производственные среды.
Теперь я просто использовал подход, заключающийся в наличии ветки для каждой среды, что позволяет легко сравнивать, чтобы люди могли быстро получить исходный код и еще много чего, и увидеть развитие кодовой базы вверх по цепочке.
ГЛАВНАЯ -> ЭТАП -> ТЕСТ -> РАЗРАБОТКА
Это одна единственная линейная строка, и мы можем просто просмотреть историю ветки MAIN, чтобы увидеть все различные выпущенные сборки.
От ветки dev мы разделяемся на наши локальные ветки, и любые исправления поступают прямо из ветки UAT.
Это работает для нас — но это работает в том смысле, в котором могла бы работать процедурная программа — возможно, это не самый эффективный подход. Мне просто очень любопытно, есть ли лучшие способы сделать это, и после прочтения множества материалов в Интернете я чувствую, что люди не разделяют свои ветки по среде, но я действительно не понимаю, как это работает лучше? Несмотря на то, что сливать четыре раза, чтобы выпустить какой-то код, мучительно (хотя большую часть времени это довольно медленный пайплайн, у нас есть еженедельные релизы).
Любая помощь очень ценится.