繁体   English   中英

Azure Devops 管道,知道管道何时完成的方法,使用自托管代理

[英]Azure Devops pipeline , way to know when pipeline is done , using self hosted agent

我有一个 Azure 管道,我使用它调用它 azure rest API

https://dev.azure.com/xxx/xxx_connection/_apis/pipelines/2/runs

一切正常,我将源文件从安装自托管 Linux 代理发送到 azure,并将它们编译回自托管 Linux 代理。

我的问题是如何知道管道何时在托管自托管 Linux 代理的服务器中完成?

有回调吗? 或 API 我可以调用并查询管道作业是否完成?
或者只是在我接受获取编译产品的目录上做 while 循环? 我想避免的最后一个选项。

您可以使用Runs - Get API:

GET https://dev.azure.com/{organization}/{project}/_apis/pipelines/{pipelineId}/runs/{runId}?api-version=6.1-preview.1

并在响应中检查result (应该succeeded )。

当您使用您提到的 API(在响应中)调用管道时,您可以获得runId

您还可以通过以下方式了解管道是否已完成。

1, Using Runs-Get or Latest - Get API 来获取 Shayki Abramczyk 提到的构建结果。

2、可以设置服务挂钩 对于下面的示例,在完成所选构建管道时触发的Web 钩子

在此处输入图片说明

3,您可以查看扩展CatLight CatLight 应用程序会在构建开始和完成时通知您。

4、在构建完成事件上创建自定义通知并订阅。 管道完成后,您将收到电子邮件通知。 查看此处教程以获取更多信息。

您可以每 30 秒轮询一次管道以了解您的构建状态,脚本将在状态成功后退出。

$user="$(USER)"
$token="$(TOKEN)"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$buildInfo = ( Invoke-RestMethod -Method Get -UseDefaultCredentials -Uri "https://tfs.com/tfs/Organization/Project/_apis/build/builds/${buildID}?api-version=6.1-preview.6" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} )
Write-Host "Build URL : " "https://tfs.com/tfs/Organization/Project/_build/results?buildId=$buildID"
      while($buildInfo.status -eq "inProgress" -or $buildInfo.status -eq "notStarted") # keep checking till build completed
      {
       Write-Output "Build is $($buildInfo.status) Sleep for 30 seconds."
       Start-Sleep -Seconds 30 # Start sleep for 30 seconds
       $buildInfo = ( Invoke-RestMethod -Method Get -UseDefaultCredentials -Uri "https://tfs.com/tfs/Organization/Project/_apis/build/builds/${buildID}?api-version=6.1-preview.6" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} )
      }

      Write-Output "Build Status : $($buildInfo.status)" # print build status
      Write-Output "Build Result : $($buildInfo.result)" # print build result

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM