документация показывает, что у вас может быть более 40 ветвей с разными конфигурациями. Вы выражаете обеспокоенность тем, что конфигурация становится большой. С хорошим редактором это не проблема. И все же это кажется неправильным, не так ли?
В целом, в git репозиторий для каждого независимого развертываемого объекта работает лучше, чем один репозиторий, содержащий множество независимых развертываемых объектов. Таким образом, альтернативная схема — это не 1 репо с 40 филиалами, а 1+40 репозиториев. Это будет один репозиторий, в котором будет собран последний код и создает релизы. Затем 40 репозиториев, представляющих конфигурацию для развертывания определенной версии кода, настроенной для одного веб-сайта. 40 репозиториев, в которых развертывается код, могут содержать 40 конфигураций для каждого веб-сайта и стандартизированный сценарий сборки, который просто загружает нужную версию кода для развертывания вместе с конфигурацией веб-сайта в среду.
Мы используем 1+N+M репозиториев git. У нас есть 1 репозиторий, в котором хранятся сценарии развертывания. Они версионируются и выпускаются. У нас есть N репозиториев, которые объединяют различные приложения в выпуски. В настоящее время два приложения PHP и два приложения реагирования работают вместе, но развертываются и обновляются независимо. Затем репозитории M, представляющие среды/сайты, которые мы развертываем, которые в настоящее время только промежуточные и активные.
Мы используем k8s (OKD), а сценарии развертывания — helm. Это просто означает, что наши сценарии развертывания и настройка среды стали проще, а откат/понижение версии полностью автоматизированы. На самом деле мы не загружаем приложение для развертывания во время сборки. Вместо этого мы просто извлекаем тег реестра Docker той версии кода, которую хотим развернуть в данной среде.
Я начал проект по открытию нашего подхода к развертыванию приложений из git, который называется ОКР. Работа все еще находится в стадии разработки, но она демонстрирует некоторые из вышеперечисленных идей.