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

能否在Azure Release Pipeline运行时手动设置标签?

Azure Release Pipeline 运行时动态设置发布标签的方法

可以在Release Pipeline运行期间动态设置发布标签,目前没有像#vso[release.updatereleasename]那样的直接日志命令,但可以通过以下两种常用方法实现:

方法一:使用Azure DevOps CLI命令

  • 在Release Pipeline中添加PowerShell任务或Bash任务(根据代理环境选择)
  • 在任务中执行标签添加命令,结合流水线变量生成唯一标签,示例:
# Bash示例
az pipelines release tag add --release-id $(Release.ReleaseId) --tags "Build_$(Build.BuildId)_$(Get-Date +%Y%m%d%H%M%S)" --org $(System.TeamFoundationCollectionUri) --project $(System.TeamProject)
# PowerShell示例
az pipelines release tag add --release-id $(Release.ReleaseId) --tags "Build_$(Build.BuildId)_$(Get-Date -Format 'yyyyMMddHHmmss')" --org $(System.TeamFoundationCollectionUri) --project $(System.TeamProject)
  • 说明:利用Build.BuildId、时间戳等变量确保每次运行标签唯一;任务需配置Azure DevOps服务连接,或确保代理有CLI调用权限。

方法二:调用Azure DevOps REST API

通过PATCH请求修改发布的标签属性,适合更灵活的标签管理场景:

  • 添加PowerShell任务,执行以下脚本(推荐使用系统AccessToken认证):
$releaseId = $(Release.ReleaseId)
$orgUrl = $(System.TeamFoundationCollectionUri)
$projectName = $(System.TeamProject)
$pat = "$(System.AccessToken)"

$headers = @{
    "Authorization" = "Basic " + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$pat"))
    "Content-Type" = "application/json"
}

# 生成包含唯一标识的标签列表
$tags = @(
    "Release_$(releaseId)_$(Get-Date -Format 'yyyyMMddHHmmss')",
    "Env_$(Release.EnvironmentName)"
)

$body = @{ tags = $tags } | ConvertTo-Json

Invoke-RestMethod -Uri "$orgUrl$projectName/_apis/release/releases/$releaseId?api-version=7.1-preview.8" -Method PATCH -Headers $headers -Body $body

你提供的截图显示了Release Pipeline列表中的“标签”列,通过上述方法即可为每次运行的发布动态添加不同标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 21:01:11