You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure DevOps中按分支生成递增构建编号以命名SNAPSHOTS工件?

在Azure DevOps中实现分支专属递增构建编号的工件命名方案

一、利用内置变量+构建编号规则实现

Azure DevOps可以通过自定义构建编号格式配合分支变量,直接实现分支内递增的编号逻辑:

  1. 配置分支专属的构建编号

    • 进入流水线编辑页面,点击右上角「省略号」→「流水线设置」
    • 在「常规」标签的「构建编号格式」中输入:
      $(Build.SourceBranchName)_$(rev:r)
      
      其中$(Build.SourceBranchName)会自动获取当前分支名称,$(rev:r)是分支专属的递增计数器——同一分支每次构建时数字自动加1,不同分支的计数相互独立。比如分支MyGreatFeature第四次构建时,构建编号就是MyGreatFeature_4。
  2. 引用构建编号命名工件
    在流水线的「发布工件」步骤中,将工件名称设置为$(Build.BuildNumber),即可自动生成符合要求的工件名。

二、通过REST API自定义查询分支构建次数(备用方案)

如果需要更灵活的计数规则(比如排除失败构建),可以用Azure DevOps REST API查询指定分支的历史构建次数,再传入流水线作为变量:

  1. 添加脚本步骤查询构建次数
    在流水线中加入「PowerShell」步骤,开启「允许脚本访问OAuth令牌」权限,然后执行以下代码:

    $orgUrl = "$(System.TeamFoundationCollectionUri)"
    $projectName = "$(System.TeamProject)"
    $definitionId = "$(System.DefinitionId)"
    $branchName = "$(Build.SourceBranchName)"
    $pat = "$(System.AccessToken)"
    
    $headers = @{ Authorization = "Bearer $pat" }
    # 查询当前分支下已完成的构建记录
    $url = "$orgUrl/$projectName/_apis/build/builds?definitions=$definitionId&sourceBranch=refs/heads/$branchName&statusFilter=completed&api-version=7.1-preview.7"
    $response = Invoke-RestMethod -Uri $url -Headers $headers -Method Get
    
    # 计算当前构建的序号(历史完成次数+1)
    $branchBuildCount = $response.count + 1
    # 设置为流水线全局变量
    Write-Host "##vso[task.setvariable variable=BranchBuildCount;]$branchBuildCount"
    
  2. 使用自定义变量命名工件
    在发布工件步骤中,将工件名称设置为$(Build.SourceBranchName)_$(BranchBuildCount)即可。

内容的提问来源于stack exchange,提问作者opticyclic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:05:00