Azure 发布管道 - “触发”分支名称的变量

Posted

技术标签:

【中文标题】Azure 发布管道 - “触发”分支名称的变量【英文标题】:Azure Release Pipeline - Variable for 'Triggered' Branch Name 【发布时间】:2020-04-07 16:48:54 【问题描述】:

所以我已经在 master 上工作了一段时间,最近刚刚添加了一个“发布”分支,我将从现在开始工作。

在我的发布管道中,我有一个使用预定义变量设置自定义变量的 PowerShell 脚本。

$branchName = $Env:BUILD_SOURCEBRANCHNAME
$buildNumber = $Env:BUILD_BUILDNUMBER
$release = $branchName + "." + $buildNumber.ToString()

$pipeline.variables.NameVar.value = $release

如果我将代码推送到我的发布分支,此脚本将在我的管道末尾运行,并且变量应该更改为release.xxxx,但它已更改为master.xxxx

构建变量 build.sourcebranchname 没有返回我的发布分支名称,而是返回 master 是否有原因? build.buildnumber 变量返回正确的值。

【问题讨论】:

很高兴看到问题已解决,您可以Accept it as an Answer,这对阅读此主题的其他社区成员可能会有所帮助。 【参考方案1】:

尝试去Get sources看看你是否选择了正确的分支。

我已经测试了你的脚本,它返回了预期的结果:

【讨论】:

谢谢你。看到您更改默认分支的位置实际上使我走上了正确的轨道。我没有更改默认分支(我想保留它作为主分支),而是能够为我的新分支添加一个分支过滤器,从而解决了我的问题。【参考方案2】:

所以我发现了我的问题。添加新的发布分支后,我需要编辑构建管道以设置多个分支。基本上是关注微软的this doc。

添加release/* 作为分支过滤器允许构建管道在发布分支上构建,而不仅仅是主分支。从那时起,当我在发布管道中使用构建变量时,它们都返回了正确的值。

【讨论】:

以上是关于Azure 发布管道 - “触发”分支名称的变量的主要内容,如果未能解决你的问题,请参考以下文章

基于用于触发管道 Azure Devops 的分支指定构建分支

Azure Devops 管道通过生成验证触发两次

在 azure 中的发布管道之间传递变量(触发 azure 管道扩展)

触发器分支属性的可变扩展防止创建下游管道

如何在任何分支上的每次新推送时触发 Azure Pipeline?

用于更新文件和签入 TFS 的 Azure DevOps 管道任务