“下载构建工件”任务具有输出变量BuildNumber,该变量使获取从中下载工件的构建的ID成为可能。新的“下载管道工件”任务(比“下载构建工件”优先)没有任何输出变量。有没有办法获取从中下载工件的版本的ID?
还在GitHub上发布了issue。
答案 0 :(得分:0)
有一种解决方法,可以使用restful api获取下载的工件的内部版本号。
获取特定版本的BuildId。您可以参考以下示例。 首先,在您的管道中添加一个powershell任务,以在以下脚本下运行。
要获取提供的定义ID的定义名称(以下脚本中将使用定义ID),请检查here中是否有其余API。
$urldefinition ="https://dev.azure.com/<org>/<proj>/_apis/build/definitions?name=AboutSite-ASP.NET-CI&api-version=5.1"
$result = Invoke-RestMethod -Uri $urldefinition -Headers @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"} -Method Get
$definition= $result.value
$definitionId = $definition[0].id
然后您可以使用以下脚本获取构建ID:
$url="https://dev.azure.com/<org>/<proj>/_apis/build/builds?definitions=$definitionId&buildNumber=20191109AboutSite-ASP.NET-CI&statusFilter=completed&resultFilter=succeeded&api-version=5.1"
$result = Invoke-RestMethod -Uri $urldefinition -Headers @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"} -Method Get
$build = $result.value
$id = $build[0].id
然后您可以为以下任务输出buildid以与以下脚本一起使用:
echo "##vso[task.setvariable variable=ArtifactBuildId;isOutput=true]$id"
要获取最新的版本ID,您只需在api下方使用
GET https://dev.azure.com/{organization}/{project}/_apis/build/latest/{definition}?branchName={branchName}&api-version=5.1-preview.1
答案 1 :(得分:0)
Microsoft即将release a fix。