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

cor*_*123 1 azure-devops azure-pipelines

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

例如:

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

Edd*_*SFT 7

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

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

  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"
}
Run Code Online (Sandbox Code Playgroud)