Я пытаюсь настроить конвейеры выпуска Azure DevOps для наших проектов, и у меня есть достаточно четкое представление о том, чего я хочу достичь, но я только получаю почти полностью.
Вот что я хотел бы:
- Конвейер сборки для каждого соответствующего проекта выводит в виде артефактов все необходимое для развертывания этой версии в любой среде.
- Конвейер выпуска автоматически развертывается в первой среде (в нашем случае «dev») при каждой успешной сборке, включая сборки PR.
- Для каждой последующей среды был развернут выпуск , должен успешно для всех предыдущих сред.Другими словами, для развертывания во второй среде («st») она должна быть развернута в первой («dev»), а для развертывания в третьей («at») она должна быть успешноразвернуты на всех предыдущих (как "dev", так и "st") и т. д.
- У всех сред могут быть особые требования относительно того, из каких ветвей должны быть созданы развертываемые артефакты;Например, только «артефакты», созданные из
master
, могут быть развернуты в «at» и «prod». - Каждое последующее развертывание в любой среде после того, как первое запускается вручную кем-то из списка утверждающих.Список утверждающих в разных средах различен.
Единственный способ, с помощью которого я смог разобраться, как все вышеперечисленное работает одновременно, - это автоматический запуск следующей среды после успешного развертывания.и добавьте ворота перед развертыванием с шагом одобрения вручную.Это работает, за исключением того, что ручное утверждение не запускает развертывание само по себе , а скорее позволяет запускать уже запущенное развертывание .Это означает, что любой выпуск, который не одобрен для подъема в следующую среду, остается висеть до тех пор, пока не будет отклонен вручную.
Я могу избежать этого, используя ручной триггер вместо автоматического, но затем яне может обеспечить поток из одной среды в другую (например, можно выполнить развертывание в «prod», не дожидаясь успешного развертывания на предыдущих этапах).
Есть ли способ настроить конвейеры выпуска DevOps Azure длясделать все, что я описал выше сразу?