как получить целевую ветку из запроса на перенос с помощью azure DevOps API или других методов? - PullRequest
1 голос
/ 13 июля 2020

Я пытаюсь создать один конвейер сборки для 3 env (dev, qa, prod), но с возможностью выбора, из какого из них строить. или другое репо, и не во всех env. Теперь проблема в том, что при PR он запустит конвейер только на главной (prod) ветви, поскольку он должен содержать файл yml.

Есть ли способ получить целевую ветвь PR, чтобы добавить дополнительные условия для триггеров PR?

Ответы [ 2 ]

1 голос
/ 14 июля 2020

как получить целевую ветку из пулреквеста с помощью azure DevOps API или других методов?

Согласен с Яном Скляренко. Azure DevOps предоставляет нам некоторые предопределенные переменные , например:

System.PullRequest.IsFork
System.PullRequest.PullRequestId
System.PullRequest.PullRequestNumber
System.PullRequest.SourceBranch
System.PullRequest.SourceRepositoryURI
System.PullRequest.TargetBranch

Чтобы получить целевую ветвь из запроса на вытягивание, мы могли бы использовать предопределенную переменную System.PullRequest.TargetBranch .

Итак, мы могли бы использовать эту предопределенную переменную как условие:

condition: and(succeeded(), eq(variables['System.PullRequest.TargetBranch'], 'refs/heads/master'))
0 голосов
/ 13 июля 2020

У вас все еще может быть один конвейер сборки. Триггеры PR предназначены для репозиториев github / bitbucket. Вы можете создать политику ветвления, которая запускает ваш код et c.

Условия, которые могут быть на каждом шаге / задаче: условия в Azure DevOps , например:

- stage: B
  condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/master'))

с этим условием этот этап будет запущен, только если исходная ветка названа "master"

...