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

如何在构建成功后自动创建Azure DevOps Build Pipeline TAG(非GIT TAG)

解决方案

前置准备

首先需要给构建服务账号配置对应仓库的操作权限,避免权限不足导致操作失败:

  • 进入对应代码仓库的「安全性」设置页
  • 找到名称格式为「[项目名称] Build Service ([组织名称])」的服务账号
  • 给该账号授予「创建标签」「贡献」权限后保存配置

YAML配置步骤

以下配置完全基于Azure DevOps原生能力实现,无需任何第三方插件,适配你使用的Dev18.M170.1版本,直接添加到现有流水线YAML末尾即可:

Windows代理(PowerShell版本)

steps:
# 你原有的所有构建步骤保持不变,在末尾新增以下步骤
# ...

- task: PowerShell@2
  displayName: '同步Git TAG到构建记录'
  condition: succeeded() # 仅构建成功时执行该步骤
  inputs:
    targetType: 'inline'
    script: |
      # 提取触发当前构建的原始TAG名称
      $sourceBranch = "$(Build.SourceBranch)"
      if ($sourceBranch.StartsWith("refs/tags/")) {
        $tagName = $sourceBranch.Replace("refs/tags/", "")
        Write-Host "检测到触发TAG:$tagName"
        # 调用Azure DevOps原生日志命令给当前构建打标签
        Write-Host "##vso[build.addbuildtag]$tagName"
        Write-Host "构建标签添加成功"
      } else {
        Write-Host "当前构建非TAG触发,跳过打标签步骤"
      }

Linux/macOS代理(Bash版本)

steps:
# 你原有的所有构建步骤保持不变,在末尾新增以下步骤
# ...

- task: Bash@3
  displayName: '同步Git TAG到构建记录'
  condition: succeeded()
  inputs:
    targetType: 'inline'
    script: |
      SOURCE_BRANCH="$(Build.SourceBranch)"
      if [[ $SOURCE_BRANCH == refs/tags/* ]]; then
        TAG_NAME=${SOURCE_BRANCH#refs/tags/}
        echo "检测到触发TAG:$TAG_NAME"
        echo "##vso[build.addbuildtag]$TAG_NAME"
        echo "构建标签添加成功"
      else
        echo "当前构建非TAG触发,跳过打标签步骤"
      fi

验证配置

  1. 提交修改后的YAML到代码仓库
  2. 手动创建一个RC开头的TAG(例如RC2)触发构建
  3. 构建成功后进入构建详情页,查看「标签」区域可确认对应RC标签已经自动添加
  4. 在Release Pipeline中配置触发过滤条件为Build tag matches RC*即可正常筛选符合要求的构建版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:54:04