Azure devops &引用;下载管道工件“;任务输出

Azure devops &引用;下载管道工件“;任务输出,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,“下载构建工件”任务具有输出变量BuildNumber,该变量可用于获取从中下载工件的构建id。新的“下载管道工件”任务(优于“下载构建工件”)没有任何输出变量。有没有一种方法可以获取下载工件的构建id 也在GitHub上发布了一篇文章。有一个解决方法,可以使用获取下载工件的构建id 获取特定版本的BuildId。您可以参考下面的示例。 首先在管道中添加一个powershell任务,以便在脚本下面运行 要获取定义名称提供的定义id(定义id将在以下脚本中使用),请检查RESTAPI $urlde

“下载构建工件”任务具有输出变量BuildNumber,该变量可用于获取从中下载工件的构建id。新的“下载管道工件”任务(优于“下载构建工件”)没有任何输出变量。有没有一种方法可以获取下载工件的构建id


也在GitHub上发布了一篇文章。

有一个解决方法,可以使用获取下载工件的构建id

获取特定版本的BuildId。您可以参考下面的示例。 首先在管道中添加一个powershell任务,以便在脚本下面运行

要获取定义名称提供的定义id(定义id将在以下脚本中使用),请检查RESTAPI

$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,您只需使用下面的


有一种解决方法可以使用获取下载工件的构建id

获取特定版本的BuildId。您可以参考下面的示例。 首先在管道中添加一个powershell任务,以便在脚本下面运行

要获取定义名称提供的定义id(定义id将在以下脚本中使用),请检查RESTAPI

$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,您只需使用下面的


Microsoft即将。

Microsoft即将。

我需要计算“下载管道工件”任务的生成id,不是特定的或最新的。嗨@Alex I我所说的特定的和最新的是根据下载管道工件任务的输入。该任务根据指定计算要下载的工件,例如
定义、buildVersionDownload、branchName、artifactName等
。您可以在rest api中使用这些输入,使用powershell脚本获取工件的构建id。即使我使用这种方法,也有可能计算不同的构建id(在执行“下载管道工件”之后和脚本运行之前,另一个构建可能已完成或已被标记)。@Alex我同意。以上只是一种变通方法。它不如任务的自输出变量方便。我相信Microsoft开发团队正在考虑这个问题。让我们期待着功能很快被添加。我需要计算“下载管道工件”任务的构建id,而不是具体的或最新的。Hi@Alex I我所说的具体的和最新的是根据下载管道工件任务的输入。该任务根据指定计算要下载的工件,例如
定义、buildVersionDownload、branchName、artifactName等
。您可以在rest api中使用这些输入,使用powershell脚本获取工件的构建id。即使我使用这种方法,也有可能计算不同的构建id(在执行“下载管道工件”之后和脚本运行之前,另一个构建可能已完成或已被标记)。@Alex我同意。以上只是一种变通方法。它不如任务的自输出变量方便。我相信Microsoft开发团队正在考虑这个问题。让我们期待着功能很快被添加。
echo "##vso[task.setvariable variable=ArtifactBuildId;isOutput=true]$id"
GET https://dev.azure.com/{organization}/{project}/_apis/build/latest/{definition}?branchName={branchName}&api-version=5.1-preview.1