【发布时间】:2020-12-25 18:44:52
【问题描述】:
分支“1850”被合并到分支“dev”中。当合并到分支“dev”时,管道触发。当发布成功或失败时,会有一个阶段会发送电子邮件让用户知道发布的状态。从电子邮件中我无法判断它是哪一个。那么如何获取“1850”变量的分支名称。
更新 Leo Liu-MSFT 的回答:
【问题讨论】:
标签: azure-devops
分支“1850”被合并到分支“dev”中。当合并到分支“dev”时,管道触发。当发布成功或失败时,会有一个阶段会发送电子邮件让用户知道发布的状态。从电子邮件中我无法判断它是哪一个。那么如何获取“1850”变量的分支名称。
更新 Leo Liu-MSFT 的回答:
【问题讨论】:
标签: azure-devops
如何获取合并到触发管道的目标分支的分支名称?
您可以使用predefined variablesSystem.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 任务本身或代理。因此,请尝试使用 hosted agent 和 Inline powershell 任务来检查您是否仍有此问题。
希望这会有所帮助。
【讨论】: