gpt4 book ai didi

azure-devops - 如何从 Azure 发布管道获取构建管道标签?

转载 作者:行者123 更新时间:2023-12-04 14:16:56 24 4
gpt4 key购买 nike

明确地说:这与 Git 标签无关。我说的是可以添加到单个管道构建中的标签。例如,当使用日志命令 时##vso[build.addbuildtag] .

构建管道为其构建添加了许多标签。例如版本号,构建是否用于候选版本等......

我的问题是如何根据标记的管道构建在发布管道中获取这些标记。

[编辑] 应用的解决方案

我的实现方式是在命令任务中,使用 Bash。唯一的依赖是一个名为“myvars.pat”的( secret )变量。这是为此特定情况创建的个人访问 token 。我使用了一个变量组来与不同的发布管道共享 token 。

# Construct the url based on the environment
ORG=$(basename $(System.CollectionUri))
URL=https://dev.azure.com/$ORG/$(Build.ProjectName)/_apis/build/builds/$(Build.BuildId)/tags?api-version=5.1

# Base64 the PAT token. Mind the ':' prefix !
PAT=$(echo -n ":$(myvars.pat)" | base64)

# Make the GET request. "-L" is needed to follow redirects.
curl -L -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Basic $PAT" -s -o ./tags.json $URL

# Using default tools to extract the array. No doubt there is a cleaner way.
tags=$(cat ./tags.json | cut -d "[" -f 2 | cut -d "]" -f 1 | tr -d '"' | tr ',' ' ')

# There are the tags
for tag in $tags; do
echo $tag
done

# Set them as a variable to be used by the subsequent tasks
echo "##vso[task.setvariable variable=Build.Tags;]$tags"

# Clean up
rm ./tags.json

最佳答案

how I can get these tags in a release pipeline based on the tagged pipeline build



对于这个问题,您可以使用 Tags - Get Build Tags休息api来实现它。你可以在发布管道中添加一个powershell任务,然后通过脚本调用这个rest api来输出发布中的构建标签。
 GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/tags?api-version=5.1

示例脚本:
$personalAccessToken="{yourPAT}"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($personalAccessToken)"))
$header = @{Authorization=("Basic {0}" -f $token)}
$Url = "https://dev.azure.com/{org}/{pro}/_apis/build/builds/{buildId}/tags?api-version=5.1"
$tags = Invoke-RestMethod -Uri $Url -Method Get -Headers $header
Write-Host "Tags = $($tags.value| ConvertTo-Json -Depth 1)"

进入发布:

enter image description here

关于azure-devops - 如何从 Azure 发布管道获取构建管道标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59270239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com