我想在成功部署到特定阶段[Env]后自动标记属于发布管道一部分的构建。
这将帮助我们使用创建为过滤器的标签在不同的发布管道中部署相同的构建。
我们在同一版本中使用多个版本,我们希望为每个版本标记最新版本,并删除在此过程中之前创建的旧标签。因此,对于特定版本,只有一个标签将附加到构建中。
我们正在使用名为“artefact tagger”的任务,但该任务不再支持,并且已终止。
没有现成的功能可以在阶段发布后自动为构建添加标签。通常,构建标签用于在发布中部署阶段之前过滤工件的预期版本。
不过,您可以考虑在发布管道的脚本中调用此PUT https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/tags/{tag}?api-version=7.1
这里有一个示例 PowerShell 脚本供您参考。它使用版本中预定义变量 {buildId}
的值检索
$(Release.Artifacts.{alias}.BuildId)
。在我的示例中,工件别名是
_Build1
。该脚本应在之前成功的部署步骤之后运行,以添加标签
r-$(Release.ReleaseId)-$(Release.EnvironmentName)
,该标签已扩展为
r-950-Dev
,如下面的屏幕截图所示。
$headers = @{
'Authorization' = 'Bearer ' + '$(System.AccessToken)'
'Content-Type' = 'application/json'
}
$tag = "r-$(Release.ReleaseId)-$(Release.EnvironmentName)"
$URL = "$(System.TeamFoundationCollectionUri)/$(System.TeamProjectId)/_apis/build/builds/$(Release.Artifacts._Build1.BuildId)/tags/${tag}?api-version=7.1"
Invoke-RestMethod -Method Put -Uri $URL -Headers $headers