我想通过API找出构建的细节。我正在使用下面来获得具体的结果。 http://localhost:8080/job/test/lastBuild/api/json?pretty=true通过API知道哪个构建步骤失败
现在,当构建失败时,我只是获取构建状态。我想确定哪个构建步骤导致问题。请让我知道如何通过API获取它
我想通过API找出构建的细节。我正在使用下面来获得具体的结果。 http://localhost:8080/job/test/lastBuild/api/json?pretty=true通过API知道哪个构建步骤失败
现在,当构建失败时,我只是获取构建状态。我想确定哪个构建步骤导致问题。请让我知道如何通过API获取它
这是一个有趣的问题。
我从来没有找到过这样的事情,因为詹金斯只是告诉你,如你所说的好或坏。
一个可能的解决方案是使用Jenkins BFA插件。
https://wiki.jenkins-ci.org/display/JENKINS/Build+Failure+Analyzer
这个插件可以帮助您自动检测基于您在配置描述的错误模式的错误。
然后你可以从jenkins json文件中收集详细的错误信息。
BR,
添
我一直在做刮失败的一些工作,建立我们的詹金斯实例,然后试图匹配失败,包括那些由构建失败分析归类,并我可以告诉你这有点令人沮丧。
我们有三种类型的版本(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来删除那个。
对于工作流程构建而言,据我所知,存在烦人的新闻,好消息,坏消息,甚至更糟糕的消息。令人讨厌的部分是,你必须看到这是一个工作流构建(查看_class
属性,你没有要求它),然后看构建url,但替换wfapi
为api/json
(并忘记其余的参数)。然后,您可以按照您返回的json
链接来查找失败。好消息是,这给你一个更好的链接到失败,包括可理解的消息(某个时候)。
坏消息是我不确定构建失败分析器是否正常工作,或者知道如何在正确的构建步骤上标记它。
更糟糕的消息是,对于我的服务器上的大量构建,此API似乎根本不起作用。即使我可以通过BlueOcean UI看到类似的信息。我正在调查现在运行这个。
对不起,这不是一个简单的答案,但就目前而言,这是事情的状态。
我已经安装了BFA插件并配置了故障模式。但是,请你指点我如何在jenkins api json格式中得到这个错误。 – user987709
嗨,你需要使用像这样的https:// localhost/jenkins/job/ShellTest/1/api/json?pretty = true&depth = 3,depth = 3将帮助你显示故障原因相关信息,例子是“foundFailureCauses”:[{ “类别”:[ “聚甲醛” ], “描述”: “SCM连接或developerConnection必须指定”, “ID”:“28953504-e351-4dff-9c9b-1143325d6c7a “, ”name“:”Pom - Missing SCM Information“ },那么你可以用任何json解析器解析响应。 – Tim