是否可以根据Azure Pipelines中的分支名称来更改内部版本的名称?

时间:2019-12-16 11:08:28

标签: azure-devops azure-pipelines

我的大部分构建来自功能分支或开发,因此我倾向于使用已知的构建变量来跟踪构建编号,例如:

Build Variables

variables:
- group: BuildVars

name: $(BuildPrefix)$(Rev:r)

这可以正常工作,并为我提供了格式良好的构建版本,随后我可以将其应用于发行版等内容:

Build number as name in Build Pipeline

Build number as name in Release Pipeline

但是,当我们计划发布时,我们在发布后命名分支,例如:release/1.1,并且我希望使用构建名称引用而不是硬编码(先前)版本

我知道我可以通过Build.SourceBranch变量来引用分支名称,但是在构建步骤之外,我没有看到一种明显的方式来读取和修改分支名称,到那时我认为为时已晚?我真的不需要手动更改BuildPrefix变量,直到将发行版部署到生产中为止。

在此基础上,便可以根据分支名称添加适当的预发布标签等。

2 个答案:

答案 0 :(得分:1)

您始终可以使用以下命令来更新构建名称:

- pwsh: |
    Write-Host "##vso[build.updatebuildnumber]value_goes_here"

因此您可以在同一步骤(或上一步)中计算值,并使用该值更新构建名称

答案 1 :(得分:1)

  

是否可以基于Azure Pipelines中的分支名称来更改内部版本的名称?

答案是肯定的。

我们当前使用的解决方案是添加一个Run Inline Powershell任务,以根据Build_SourceBranchName更新内部版本号:

$branch = $Env:Build_SourceBranchName
Write-Host "Current branch is $branch"
if ($branch -eq "Dev")
{
    Write-Host "##vso[build.updatebuildnumber]$DevBuildNumber"
}
elseif ($branch -eq "Beta")
{
    Write-Host "##vso[build.updatebuildnumber]$BetaBuildNumber"
}
elseif ($branch -eq "Test")
{
    Write-Host "##vso[build.updatebuildnumber]$TestBuildNumber"
}

在构建过程中检查Logging Command,了解更多详细信息。

希望这会有所帮助。