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

时间:2020-09-23 14:46:42

标签: linux azure azure-devops azure-devops-rest-api azure-devops-pipelines

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

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

一切正常,我将源文件从安装的Self Hosted Linux Agent发送到azure,然后将其重新编译为Self Hosted Linux Agent。

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

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

2 个答案:

答案 0 :(得分:1)

您可以使用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 :(得分:1)

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

1,如Shayki Abramczyk所述,使用Runs-GetLatest - Get API获得构建结果。

2,您可以设置service hook。对于下面的示例,web hook在完成选定的构建管道时触发。

enter image description here

3,您可以签出扩展名CatLight。 CatLight应用程序将在构建开始和完成时通知您。

4,在构建完成事件上创建自定义通知并订阅。管道完成后,您会收到电子邮件通知。检查tutorial here以获得更多信息。