【发布时间】:2021-04-12 11:42:20
【问题描述】:
我通过 API 调用作为第一个任务从发布管道触发构建管道,并且没有任何问题。
第二个任务 - 管道需要等待,直到从第一个任务触发的管道完成,然后转到第三个任务。我如何实现它?
我在下面的 powershell 任务中尝试从正在运行的管道中获取构建 ID,并尝试通过循环等待,但无法获取构建 ID
触发构建管道的第一个任务
curl -L -X POST 'https://dev.azure.com/Org/project/_apis/build/builds?definitionId-1549&api-version=6.1-preview.6' -H 'Authorization: $(ADO_BASIC_AUTH)' -H 'Content-Type: application/json' --data '{"definition": {"id": 1549}}'
您建议的第二个任务
$B64Pat = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":$(ADO_BASIC_AUTH)"))
$header = @{ Authorization = "Basic $B64Pat" }
$continueCurrent = $true
$uriGetActiveBuilds1 = "https://dev.azure.com/org/project/_apis/build/builds?definitions=1549&statusFilter=inProgress,notStarted&api-version=5.1"
do
{
$continueCurrent = $true
$resultStatus = Invoke-RestMethod -Uri $uriGetActiveBuilds1 -Method Get -ContentType "application/json" -Headers $header
if ($resultStatus.count -gt 0)
{
$continueCurrent = $false
Write-Host " . "
Start-Sleep -s 10
}
}while($continueCurrent -eq $false)
Write-Host "Continue task"
即使第一个任务触发的构建管道完成,第二个也会继续等待
我的管道输出
【问题讨论】:
标签: azure-devops azure-pipelines azure-devops-rest-api