Tl; Dr Есть много способов соединить это вместе
- Добавить git-репо к артефактам конвейера релиза, как упомянул @Shayki
- Добавить git-репо в ваш конвейер релиза вручнуюс опцией
--no-checkout
- Выполнять операции git в сборке и включать некоторый файл флага в артефакт
- Выполнять операции git в сборке и помечать сборку (предпочтительно)
- Вставьте
.git
dir в артефакт
Добавьте git repo к артефактам конвейера релиза
Добавление репозитория Git в качестве артефакта в конвейер релиза позволит агенту развертывания получить доступв систему контроля версий (включая файлы кода), чтобы вы могли выполнить запрос на стадии выпуска.
Добавление git repo в конвейер выпуска вручную
Я не думаю, что пользовательский интерфейс DevOps Azure даст вам возможность клонировать только каталог .git
, что помешает вашему развертываниюагент на самом деле с исходным кодом. Но, если вы «разрешите сценариям доступ к токену oAuth», вы сможете использовать его для клонирования хранилища вручную с помощью powershell, используя git clone --no-checkout url
.
Включить некоторый файл флага в артефакт
Другими путями было бы принятие решения о конвейере сборки, производящем артефакт, и публикация файла переключателя с вашим артефактом, который указывает, что релиз не должен выполнять ожидаемые задачи.
Пометить сборку
Может быть другой способ сделать это, но я этого не знаю. Используйте RESTapi для добавления тега в сборку, если поиск в git показывает, что выпуск должен выполнять дополнительную работу. Не забудьте установить «разрешить скриптам использовать токен oAuth» в вашей работе по сборке. Затем создайте в конвейере выпуска этапы Full
и Min
, где у full есть дополнительные задачи, а min нет.
![enter image description here](https://i.stack.imgur.com/0MA3K.png)
На этих этапах вы можете использовать функцию фильтров артефактов на основе тега сборки. ![enter image description here](https://i.stack.imgur.com/2flQZ.png)
![enter image description here](https://i.stack.imgur.com/erAED.png)
Если вы не хотите (или не можете) использовать отдельные этапы ииспользуя фильтры артефактов, вы можете получить теги через powershell и использовать пользовательские условия, которые вы указали в своем вопросе.
Вставьте .git
dir в артефакт
Если вы полностью настроены на принятие решения о выпуске и не можете получить от него доступ к репо, поместите каталог .git
из вашей сборки в (новый?) Артефакт, а затем используйте его навыпуск трубопровода. (Это похоже на настоящий взлом, и я не совсем уверен, что это сработает).