Azure DevOps YAML如何从仓库引用中提取分支名称?
Azure DevOps YAML流水线提取分支名(去除refs/heads/前缀)
不用PowerShell脚本,用Azure DevOps内置表达式就能解决这个问题,推荐两种可靠写法:
方法一:分割取最后一段(兼容多种前缀格式)
如果你的ref可能是refs/heads/或refs/tags/等格式,用split+last组合可以通用提取最后一段内容:
variables: # 替换your-repo-name为你的资源仓库别名或索引 branchName: ${{ last(split(resources.repositories['your-repo-name'].ref, '/')) }}
示例:当ref值为refs/heads/development时,最终branchName会得到development。
方法二:精准替换固定前缀
如果确定前缀只会是refs/heads/,直接用replace表达式替换掉前缀即可:
variables: branchName: ${{ replace(resources.repositories['your-repo-name'].ref, 'refs/heads/', '') }}
注意:要确保资源仓库的引用格式正确,若流水线中只有一个资源仓库,也可以用resources.repositories[0].ref来引用。
内容的提问来源于stack exchange,提问作者LadyHail
相关产品推荐
相关产品推荐

