由于超时,查询构建失败 - Azure DevOps Server

Query builds failed because of timeout - Azure DevOps Server

在我们的开发环境中,我们有大量的回购、大量的构建和大量的构建服务器,并且大多数时候一切都在正常工作——但是,我们看到由于超时而失败的构建有所增加。

这些超时不是因为我们接近限制而发生的,而是因为管道中的某些东西“得到 stuck/blocked”并且它一直停留在该步骤直到超时终止构建。

为了更好地调试发生这种情况的原因,我们需要能够查询哪些构建由于此超时而失败,因此我们可以查看是否是特定构建服务器或代理存在此问题。

我们在 API 中找不到任何会导致超时错误的内容,但我们可以看到 UI 能够以某种方式扣除它:

到目前为止,我们已经将范围缩小到查询所有具有已完成状态 (through this API) 的构建,但是我们没有得到完成原因,并且构建时间永远不会与构建定义的超时时间完全相同,所以从执行计划中“猜”出来也会有点摇摇欲坠

我们如何才能将我们的构建过滤为仅已超时的构建?

我们可以使用下面的 API 来获取构建的详细信息。

注意:不加timelineId,我们应该列出所有信息

GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/timeline?api-version=6.1-preview.2

如果构建因为超时设置而被取消,我们可以得到消息:The job running on agent Hosted Agent ran longer than the maximum time of xxx minutes. For more information, see https://go.microsoft.com/fwlink/?linkid=2077134

顺便说一下,我们可以使用API Builds - List 来过滤所有失败的构建。如果构建由于超时设置而被取消。结果是失败而不是取消。