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 нет.
На этих этапах вы можете использовать функцию фильтров артефактов на основе тега сборки.
Если вы не хотите (или не можете) использовать отдельные этапы ииспользуя фильтры артефактов, вы можете получить теги через powershell и использовать пользовательские условия, которые вы указали в своем вопросе.
Вставьте .git
dir в артефакт
Если вы полностью настроены на принятие решения о выпуске и не можете получить от него доступ к репо, поместите каталог .git
из вашей сборки в (новый?) Артефакт, а затем используйте его навыпуск трубопровода. (Это похоже на настоящий взлом, и я не совсем уверен, что это сработает).