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

Azure devops VSTS构建-基于SourceBranchName的条件变量,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我想根据哪个分支启动构建来设置不同的构建编号 例如: 推到“Dev”分支,内部版本号为3.x.x 推到“Beta”分支,版本号为2.x.x 推到“活动”分支,构建编号为1.x.x 由于需要将分支名称转换为数字,因此没有任何方法可以直接执行此操作 我可以想到两个变通办法: 为三个分支创建三个生成定义,以便 可以为它们配置不同的内部版本号格式 如果只有一个生成定义,请在生成定义中添加一个powershell脚本任务,以获取源分支名称,然后根据该名称更新生成编号 PowerShell脚本: $bra

我想根据哪个分支启动构建来设置不同的构建编号

例如:

  • 推到“Dev”分支,内部版本号为3.x.x
  • 推到“Beta”分支,版本号为2.x.x
  • 推到“活动”分支,构建编号为1.x.x

    • 由于需要将分支名称转换为数字,因此没有任何方法可以直接执行此操作

      我可以想到两个变通办法:

    • 为三个分支创建三个生成定义,以便 可以为它们配置不同的内部版本号格式
    • 如果只有一个生成定义,请在生成定义中添加一个powershell脚本任务,以获取源分支名称,然后根据该名称更新生成编号 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"
      }
      

      由于需要将分支名称转换为数字,因此没有任何方法可以直接执行此操作

      我可以想到两个变通办法:

    • 为三个分支创建三个生成定义,以便 可以为它们配置不同的内部版本号格式
    • 如果只有一个生成定义,请在生成定义中添加一个powershell脚本任务,以获取源分支名称,然后根据该名称更新生成编号 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"
      }
      

      很好,跟我想要的差不多;)现在使用Yaml定义是否可以做得有所不同?很好,与我所追求的差不多;)现在使用Yaml定义是否可以进行不同的操作?