Мы используем Gitlab и Gitlab flow в качестве стратегии ветвления.У нас есть master
, production
и несколько ветвей функций.Наш филиал master
управляет промежуточной средой, и когда master
объединяется с production
, что-то может быть внедрено в производство.Вот как разработчик начинает работу:
Создание ветви элемента из master
Создание запроса на слияние WIP из компонента вmaster
Начать реализацию вещей.Коллеги могут видеть изменения на лету и могут помочь в проведении обзора как можно раньше
Наши средства контроля качества кода также проверяют принятие во время выполнения MR
Удалите префикс WIP, когда разработка завершится и будет проверена локально
Когда проверка завершится и MR будет утвержден, она будет объединена с главной
Будет запущен конвейер выпуска CI / CD для запуска различных тестов и в конце развертывания образа в промежуточную
Проблема в том, что я установил тегвыпуск должен применяться в начале конвейера выпуска, тогда некоторые задания могут быть не развернуты в промежуточной среде, и это может создать тег выпуска в git, который не будет развернут в промежуточной среде.В этом случае некоторые версии будут пропущены.Однако если я установлю выпуск метки как можно позже, как после развертывания релиза в промежуточной среде (или даже в рабочей среде), то задание CI / CD не будет работать должным образом, так как задание CI / CD запускается, еслиинициируется новый выпуск (обнаружение любых изменений в файле VERSION).
Мне было интересно, очень ли необычно иметь много тегов релиза, но только некоторые из них в конечном итоге будут развернуты на staging
или production
?Единственное, что я вижу, это то, что этот подход создает некоторые шумы, когда дело доходит до тега git.Я что-то здесь упускаю?