Я занимаюсь исследованиями и пытаюсь найти оптимальную стратегию ветвления и развертывания для выполнения нижеприведенных требований. Может быть, я что-то пропустил, но это сложнее, чем кажется. В идеальном случае у нас будет только одна постоянная ветвь, «мастер», которая может иметь определенные фиксации, помеченные для маркировки выпусков к выпуску.Как реализовать эту стратегию ветвления и развертывания с использованием TeamCity и Octopus
Наша нынешняя стратегия основана на Git Flow и имеет постоянного мастера ветвей (только выпуски для производства) и «развивается». Основное, что усложняет использование модели с несколькими постоянными ветвями, - это концепция «продвижения» одной и той же сборки из промежуточной среды в производство. В настоящее время это необходимо сделать в отдельной ветке исходного кода (развертывание в стадии разработки происходит из «разработки», развертывание в prod происходит из «master»).
Инструменты: Git (VSTS), Teamcity, Octopus Deploy
Требования (функция и исправления жизненных циклов):
- Весь код проверяется с помощью выдвижных запросов (исполнение с помощью политики филиалов)
- Весь код развертывается в промежуточной среде для тестирования
- Мы можем быстро вернуться к любому снимку кода, который был deplo Yed ранее
- Если тестирование прошло успешно, то же сборка может быть «повышенно» из нашей промежуточной среды производства (нет необходимости строить заново)
Особенность накапливается с течением времени, прежде чем выталкивая производства как единая выпуск. Исправления должны быть в состоянии пройти, не попав в «все или ничего» следующего регулярного выпуска.
Мне нравится идея иметь одну постоянную ветку с тегами (re: Разделение мастера/разработки является избыточным, http://endoflineblog.com/gitflow-considered-harmful), но наличие дополнительных постоянных ветвей может лучше облегчить развертывание на разные жизненные циклы/версии (функция и исправление) до Octopus ,
Я боролся с тем, как лучше всего снять это, и я, возможно, слишком усложняю ситуацию. Любые отзывы приветствуются.
В чем ваш вопрос, на самом деле? Вы описали инфраструктуру и некоторые общие идеи, но в вашем тексте нет никакого вопроса, и ответа не может быть дано (обсуждение и укоренившиеся комментарии на самом деле не отвечают). – cyberskunk
Извините. Я обновил название. Я пытаюсь выяснить, как выполнить требования, перечисленные с помощью перечисленных инструментов. – FahnzMode
Этот вопрос слишком широк. Это два инструмента автоматизации и SCM, они могут выполнять почти все. Можете ли вы предложить дизайн/практику, и мы видим, можем ли мы предложить идеи для его улучшения? Это может быть проще. –