Azure Pipeline создает определенные запросы на извлечение - PullRequest
0 голосов
/ 31 октября 2019

У меня есть список запросов на получение, каждый из которых связан с определенными рабочими элементами. Я хочу запустить конвейер только для некоторых рабочих элементов. Поэтому я хотел бы каким-то образом автоматически выбирать вишню только запросы на коммит / пул, относящиеся к рабочим элементам, которые я хочу создать. Использование тегов на рабочих элементах или что-то подобное. В сборке мне нужны только файлы, которые были изменены, поэтому я думал об использовании git diff. Возможно ли это с помощью конвейеров Azure?

1 Ответ

1 голос
/ 31 октября 2019

Если я правильно понимаю ваш запрос, вам нужно запустить конвейер сборки только для тех запросов извлечения, которые отвечают определенным требованиям, например, связаны с рабочими элементами, помеченными определенными словами. Хотя я уверен, что нет готового решения этой проблемы, я думаю, что этого можно достичь с помощью концепции Условия и REST API .

Я бы выполнил следующие действия:

  • Самым первым шагом сборки в задании на сборку должен быть сценарий, чтобы выяснить, связан ли данный конкретный запрос на извлечение с целевыми рабочими элементами. ,Это может быть этап сборки PowerShell, который должен:

  • Обусловить дальнейшие шаги задания с помощью пользовательского условия . Вы можете прочитать больше о синтаксисе выражения здесь . В частности, в разделе Q & A описывается, как использовать переменную, заданную на предыдущем шаге сборки, в условии следующего шага

Теперь, что касается ваших заметок о взятии только измененныхфайлы. Фактически, природа запроса на удаление состоит в том, чтобы сохранить измененные файлы по сравнению с целевой ветвью, для которой они созданы. Таким образом, вам не нужно выполнять никаких дополнительных действий с git diff - запрос на получение уже содержит все, что вам нужно.

Наконец, я бы посоветовал вам пересмотреть требования этой настройки, потому что это звучит какнемного неестественно для меня. Есть и другие варианты, как не запускать конвейер. Например, это может быть решено на основе на основе имени ветви / тега , доступны как опции include, так и exclude. Или вы можете указать пути к файлам для включения или исключения, например, никогда не запускать конвейер, если были изменены только docs/*. Поддерживается подстановочный синтаксис , что делает этот инструмент еще более гибким.

Надеюсь, это поможет вам найти подходящее решение для вашего конкретного сценария.

...