Как я могу получить имя ветви, которая объединяется с целевой ветвью, которая запускает конвейер?
Вы можете использовать предопределенные переменные System.PullRequest.SourceBranch
, которые вернуть ветвь, которая просматривается в запросе на извлечение.
В качестве теста я добавляю встроенную задачу powershell для вывода этой переменной:
Write-Host "The merged target branch is:-" $(System.PullRequest.SourceBranch)
Тогда мы могли бы получить значение refs/heads/1805
.
Мы могли бы использовать задачу командной строки для анализа этого пути, чтобы получить имя ветви:
set BranchName=$(System.PullRequest.SourceBranch)
for %%a in (%BranchName%) do echo %%~nxa
Обновление:
Пока я тестирую, он отлично работает на моей стороне со следующим кодом:
Write-Host "##vso[task.setvariable variable=SourceBranchName;]$(System.PullRequest.SourceBranch)"
Удалите isOutput=true
.
Затем я могу получить переменную SourceBranchName
с помощью задачи командной строки:
echo $(SourceBranchName)
Судя по вашей ошибке, ошибка возникает из-за вашей задачи powershell или агента. Поэтому попробуйте использовать размещенный агент с задачей Inline powershell , чтобы проверить, сохраняется ли эта проблема.
Надеюсь, это поможет.