“下载管道工件”任务输出

时间:2019-11-16 16:38:56

标签: azure-devops azure-pipelines

“下载构建工件”任务具有输出变量BuildNumber,该变量使获取从中下载工件的构建的ID成为可能。新的“下载管道工件”任务(比“下载构建工件”优先)没有任何输出变量。有没有办法获取从中下载工件的版本的ID?

还在GitHub上发布了issue

2 个答案:

答案 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