【问题标题】:How to get the build id from the trigger build task provided by the Azure devops如何从 Azure devops 提供的触发器构建任务中获取构建 ID
【发布时间】:2020-10-01 13:18:12
【问题描述】:

我使用 azure devops 自定义管道提供的任务,通过传递管道 ID 和其他几个触发条件来触发另一个构建。以下是我供您参考的任务。

当我使用此任务时,它会触发我提到的管道中的构建,并在日志中提供触发构建的链接。但我需要该触发构建的 id 或链接作为输出,以便我以后可以使用它来检查状态等。请您帮忙了解如何获取它。

【问题讨论】:

  • 嗨朋友,这张票有更新吗?如果答案能给你一些帮助,请随时告诉我。只是提醒this

标签: azure-pipelines azure-pipelines-build-task azure-pipelines-yaml azure-pipelines-tasks


【解决方案1】:

您可以在 powershell 任务中使用 get latest build REST API 来获取构建 ID。请在您的 powershell 任务中添加以下脚本:

$organization = "{Organization name}" 
$project = "{Project name}" 
$definitionid = "{definitionid}"
$pat = "{PAT}"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "", $pat)))
$baseUrl = "https://dev.azure.com/$organization/$project/_apis/build/latest/$definitionid?api-version=5.1-preview.1" 
$latestbuild = Invoke-RestMethod -Uri $baseUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}  -Method GET 

Write-Host $latestbuild.id
$id1 = $latestbuild.id
Write-Host "##vso[task.setvariable variable=buildid]$id1"

您可以在后续任务中使用变量 buildid。例如:Write-Host $(buildid)

更新: 您可以在触发器构建任务的高级配置中启用“将触发的构建 ID 存储在变量中”选项:

然后,您可以在后续任务中使用 $(TriggeredBuildIds)。

【讨论】:

  • 使用rest api,我会得到最新的build id。但是,在我们有两个构建排队的情况下,一个来自触发器构建任务,一个来自手动构建。然后我使用的其余 api 将返回手动排队的那个,因为我需要触发器构建任务已经排队的那个。那么,触发器构建任务本身是否可以返回 id 或 url?
  • 我调查了你提到的任务。将尝试 Store trigger build id 并检查一次。
  • @Tejaswini N 抱歉,我没有注意到 Store 在此任务的变量选项中触发了构建 ID。您只需要启用此选项并使用 $(TriggeredBuildIds) 变量。
猜你喜欢
  • 1970-01-01
  • 2021-05-02
  • 2019-04-14
  • 2020-11-25
  • 2019-08-22
  • 2019-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多