基于不同存储库分支的 Azure DevOps 管道构建名称

Azure DevOps pipeline build name based on branch of different repository

我们希望以包含日期和分支名称的方式命名我们的构建,这样当我们想要部署到我们的环境之一时,我们可以轻松找到正确的工件。

我们有一个设置,其中有两个存储库:YAML 和代码。管道位于 YAML 存储库中,我们想要构建和部署的代码位于代码存储库中。我已经设置了构建管道,以便在对代码存储库中的代码库进行更改时触发构建。但是,当构建被触发时,构建名称包含 YAML 存储库的分支名称。由于我们将此存储库的主分支用于 CI 构建,因此构建的名称将类似于 2021-01-01 103015 main.

这使得我们在部署时很难找到正确的工件,因为一切似乎都指向一个主分支。相反,我们希望构建名称沿用 2021-01-01 103015 Feature1,其中 Feature1 是代码库的分支。

这是我们在 YAML 中设置构建名称的方式:

name: $(Date:yyyy-MM-dd HHmmss) $(SourceBranchName)

有没有办法在构建名称中获取代码仓库的分支名称?

- task: PowerShell@2
  name: 'updateBranchName'
  displayName: 'Update Build Name'
  inputs:
    targetType: inline
    script: |
      echo "*** Build.SourceBranch: $(Build.SourceBranch)"
      $sourceBranch = $("$(Build.SourceBranch)" -replace "refs/heads/", "")
      echo "*** Strip branch name from SourceBranch: $sourceBranch"
      echo "##vso[build.updatebuildnumber]$((get-date).tostring("yyyy-MM-dd HHmmss")) - $sourceBranch"

谢谢你沉默,下面的工作让我将 Azure 管道 运行 描述显示为“BranchName-BuildNUmber-** - 任务:PowerShell@2 输入: 目标类型:'inline' 脚本:|

      $branchname = $env:BUILD_SOURCEBRANCH -replace "/", "-"
      $branchname = $env:BUILD_SOURCEBRANCH -replace "refs/heads/", ""
      $buildnumber = $env:BUILD_BUILDNUMBER
  
      Write-Host "##vso[build.updatebuildnumber]$branchname-$buildnumber"