通过api知道哪个构建步骤失败了

时间:2016-07-28 22:42:11

标签: jenkins jenkins-api

我试图通过API找出构建的细节。我在下面使用以获得具体结果。 http://localhost:8080/job/test/lastBuild/api/json?pretty=true

现在,当构建失败时,我只是获取构建的状态。我想确定导致问题的构建步骤。请让我知道如何通过api

获取它

2 个答案:

答案 0 :(得分:1)

这是一个有趣的问题。

我之前从未发现过这样的事情,因为詹金斯只是告诉你好坏,就像你说的那样。

可能的解决方案是使用Jenkins BFA插件。

https://wiki.jenkins-ci.org/display/JENKINS/Build+Failure+Analyzer

此插件可以帮助您根据配置中描述的错误模式自动检测错误。

然后您可以从jenkins json文件中收集详细错误信息。

BR,

答案 1 :(得分:0)

我一直在努力从Jenkins实例中删除失败的构建,然后尝试匹配失败,包括由Build Failure Analyzer分类的失败,我可以告诉你它有点令人沮丧。

我们有三种类型的构建(FreeStyle,Matrix和Workflow),每种构建都以不同的方式报告。蒂姆在API上使用depth=3的评论回合,但我一直在使用更具体的:

https://HOST_NAME/job/PROJECT_NAME/api/json?pretty=true&tree=allBuilds[number,timestamp,url,duration,result,runs[url,number],actions[foundFailureCauses[*]]]

tree部分可以更好地确保您获得所需的所有部分(有时depth无法获得此功能),以及排除您不喜欢的内容。这适用于FreeStyle构建,以及以单个节点终止的Workflow构建。

对于Matrix构建,您必须按照runs中提供的链接进行操作,但是您必须删除它为您提供的URL(它将构建号放在错误的位置)。然后在链接的构建上调用相同的API来删除那个。

对于Workflow构建,据我所知,有令人讨厌的消息,好消息,坏消息,甚至更糟的消息。这是一个令人讨厌的部分,你必须看到这是一个Workflow构建(查看你所获得的_class属性而不要求它),然后查看构建URL,但替换wfapi api/json(并忘记其余参数)。然后,您可以按照您获得的json链接来查找失败。好消息是,这为您提供了更好的故障链接,包括可理解的消息(有时)。

坏消息是我不确定Build Failure Analyzer是否正常运行,或者知道如何在正确的构建步骤中标记它。

更糟糕的是,对于我服务器上的大量构建,这个API似乎根本不起作用。即使我可以通过BlueOcean UI看到类似的信息。我现在正在调查这个问题。

很抱歉这不是一个简单的答案,但就目前我所知,这就是现状。