【问题标题】:"Download pipeline artifact" task output“下载管道工件”任务输出
【发布时间】:2020-03-19 10:42:44
【问题描述】:

“下载构建工件”任务具有输出变量 BuildNumber,它可以获取从中下载工件的构建的 ID。新的“下载管道工件”任务(优先于“下载构建工件”)没有任何输出变量。有没有办法获取从中下载工件的构建的 ID?

还在 GitHub 上发布了issue

【问题讨论】:

    标签: azure-devops azure-pipelines


    【解决方案1】:

    微软即将release a fix

    【讨论】:

      【解决方案2】:

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

      获取特定版本的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
      

      【讨论】:

      • 我需要“下载管道工件”任务计算的构建 ID,不是具体的或最新的。
      • 嗨@Alex I 我所说的具体和最新的意思是根据下载管道工件任务的输入。任务根据你指定的inputs,如definition,buildVersionToDownload,branchName,artifactName etc,计算下载哪个工件。您可以在其余 api 中使用这些输入来使用 powershell 脚本获取工件的构建 ID。
      • 即使我使用这种方法,我也有可能计算出不同的构建 ID(另一个构建可能已经完成或在“下载管道工件”执行之后和我的脚本运行之前被标记)。
      • @Alex 我同意。以上只是一个解决方法。它不如任务的自我输出变量那么方便。我相信微软开发团队正在研究这个问题。让我们期待即将添加的功能。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-01
      • 2023-04-01
      相关资源
      最近更新 更多