You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure DevOps发布名称中捕获Git任务分支名称?

解决方案:从合并提交信息中提取来源分支名

因为你是在PR合并到develop后触发流水线构建,此时System.PullRequest.*变量仅在PR验证阶段生效,合并后的常规构建无法获取这些值;而Build.SourceBranch指向develop是正常行为。要获取带任务编号的原分支名,可通过提取PR合并提交的信息来实现,具体步骤如下:

1. 在流水线中添加脚本任务提取分支名

在流水线的发布名称设置步骤之前,添加一个脚本任务(PowerShell或Bash均可),通过Git命令解析合并提交的信息,提取原分支名并设置为流水线变量:

Bash脚本示例

# 从合并提交信息中提取来源分支名(GitHub PR合并提交默认格式为"Merge pull request #XXX from <仓库>/<分支名>")
BRANCH_NAME=$(git log --format=%s -n 1 | grep -oP 'from \K[^ ]+')
# 处理非PR合并的情况(直接推送到develop的提交)
if [ -z "$BRANCH_NAME" ]; then
  BRANCH_NAME="develop"
fi
# 设置为流水线输出变量,供后续步骤使用
echo "##vso[task.setvariable variable=SourceTaskBranch;isOutput=true]$BRANCH_NAME"

PowerShell脚本示例

# 获取最新提交信息
$commitMessage = git log --format=%s -n 1
# 匹配提取来源分支名
$matchResult = $commitMessage | Select-String 'from (\S+)'
if ($matchResult.Success) {
  $branchName = $matchResult.Matches.Groups[1].Value
} else {
  # 非PR合并提交时默认使用develop
  $branchName = "develop"
}
# 设置为流水线输出变量
Write-Host "##vso[task.setvariable variable=SourceTaskBranch;isOutput=true]$branchName"

2. 在发布名称中引用自定义变量

将发布名称设置为包含自定义变量的格式,例如:

Release-$(SourceTaskBranch)-$(Build.BuildId)

这样就能自动获取到带任务编号的原分支名,无需手动添加提交备注。

内容的提问来源于stack exchange,提问作者Eric Swiggum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 12:45:34