如何获取合并到触发管道的目标分支的分支名称?

时间:2020-03-26 06:20:36

标签: azure-devops

分支“ 1850”被合并到分支“ dev”中。当合并到分支“ dev”时,管道触发。当发布成功或失败时,会有一个阶段将发送电子邮件以使用户知道重新发布的状态。从电子邮件中我看不出来是哪一个。因此,如何获取“ 1850”变量的分支名称。

更新至刘小波MSFT的答案:

感谢您的帮助。所以我进行更改,并发生这些错误。请解释为什么。 enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

如何获取合并到触发管道的目标分支的分支名称?

您可以使用predefined variables System.PullRequest.SourceBranch,它返回在请求请求中正在检查的分支。

enter image description here

作为测试,我添加了一个内联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

enter image description here

更新

经我测试,使用以下代码对我而言效果很好:

Write-Host "##vso[task.setvariable variable=SourceBranchName;]$(System.PullRequest.SourceBranch)"

删除isOutput=true

然后,我可以通过命令行任务获取变量SourceBranchName

echo  $(SourceBranchName)

enter image description here

根据您的错误,看来该错误来自您的Powershell任务本身或代理。因此,请尝试将托管代理 Inline powershell 任务结合使用,以检查是否仍然存在此问题。

希望这会有所帮助。