VSTS构建-基于SourceBranchName的条件变量

时间:2018-08-14 20:28:52

标签: azure-devops azure-pipelines

我想根据哪个分支启动了构建来对构建号进行不同的设置。

例如:

  • 推送到“ Dev”分支,内部版本号为3.x.x
  • 推送到“测试版”分支,内部版本号为2.x.x
  • 推送到“ Live”分支,内部版本号为1.x.x

1 个答案:

答案 0 :(得分:4)

由于需要将分支名称转换为数字,因此无法直接执行任何操作。

我可以想到两种解决方法:

  1. 为三个分支创建三个构建定义,以便您 可以为其配置不同的内部版本号格式。
  2. 仅使用一个构建定义,在您的构建定义中添加Power-Shell脚本任务以获取源分支名称,然后在其上更新内部版本号。

PowerShell脚本:

$branch = $Env:Build_SourceBranchName
Write-Host "Current branch is $branch"
if ($branch -eq "Dev")
{
    $NewBuildNumber = "3" + ".X.Y.Z"
    Write-Host "Update Build Number To: $NewBuildNumber"
    Write-Host "##vso[build.updatebuildnumber]$NewBuildNumber"
}
elseif ($branch -eq "Beta")
{
    $NewBuildNumber = "2" + ".X.Y.Z"
    Write-Host "Update Build Number To: $NewBuildNumber"
    Write-Host "##vso[build.updatebuildnumber]$NewBuildNumber"
}
elseif ($branch -eq "Live")
{
    $NewBuildNumber = "1" + ".X.Y.Z"
    Write-Host "Update Build Number To: $NewBuildNumber"
    Write-Host "##vso[build.updatebuildnumber]$NewBuildNumber"
}