通过 api 了解哪个构建步骤失败
Know which build step is failed through api
我正试图通过 API 找出构建的详细信息。我在下面使用来获得具体结果。
http://localhost:8080/job/test/lastBuild/api/json?pretty=true
现在,当构建失败时,我只是获取构建状态。我想确定是哪个构建步骤导致了问题。请告诉我如何才能通过 api
这是一个有趣的问题。
我以前从未发现过这样的东西,因为 Jenkins 只是按照你说的告诉你好坏。
一种可能的解决方案是使用 Jenkins BFA 插件。
https://wiki.jenkins-ci.org/display/JENKINS/Build+Failure+Analyzer
此插件可以帮助您根据您在配置中描述的错误模式自动检测错误。
然后您可以从 jenkins json 文件中收集详细的错误信息。
Br,
蒂姆
我一直在做一些工作,从我们的 Jenkins 实例中抓取失败的构建,然后尝试匹配失败,包括由构建失败分析器分类的失败,我可以告诉你这有点令人沮丧。
我们有三种类型的构建(FreeStyle、Matrix 和 Workflow),它们中的每一种都有不同的报告。 Tim 关于在 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 构建和以单个节点终止的工作流构建。
对于 Matrix 构建,您必须遵循 runs
中提供的 link,但您必须咀嚼它给您的 URL(它将构建编号放在错误的地方)。然后你在 linked 构建上调用相同的 API 来删除那个。
据我所知,对于工作流构建,有烦人的消息、好消息、坏消息,甚至更糟的消息。烦人的部分是你必须看到这是一个工作流构建(看看你在没有要求的情况下得到的 _class
属性),然后看看构建 url,但将 wfapi
替换为 api/json
(并忘记其余参数)。然后,您可以按照从中返回的 json
link 来定位故障。好消息是,这让您更好地 link 失败,包括可理解的消息(有时)。
坏消息是我不确定 Build Failure Analyzer 是否为这些正常工作,或者不知道如何在正确的构建步骤上标记它。
更糟糕的消息是,对于我服务器上的许多构建,此 API 似乎根本不起作用。这是即使我可以通过 BlueOcean UI 看到类似的信息。我现在正在调查 运行。
抱歉,这不是一个简单的答案,但据我目前所知,这就是事情的状态。
我正试图通过 API 找出构建的详细信息。我在下面使用来获得具体结果。 http://localhost:8080/job/test/lastBuild/api/json?pretty=true
现在,当构建失败时,我只是获取构建状态。我想确定是哪个构建步骤导致了问题。请告诉我如何才能通过 api
这是一个有趣的问题。
我以前从未发现过这样的东西,因为 Jenkins 只是按照你说的告诉你好坏。
一种可能的解决方案是使用 Jenkins BFA 插件。
https://wiki.jenkins-ci.org/display/JENKINS/Build+Failure+Analyzer
此插件可以帮助您根据您在配置中描述的错误模式自动检测错误。
然后您可以从 jenkins json 文件中收集详细的错误信息。
Br,
蒂姆
我一直在做一些工作,从我们的 Jenkins 实例中抓取失败的构建,然后尝试匹配失败,包括由构建失败分析器分类的失败,我可以告诉你这有点令人沮丧。
我们有三种类型的构建(FreeStyle、Matrix 和 Workflow),它们中的每一种都有不同的报告。 Tim 关于在 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 构建和以单个节点终止的工作流构建。
对于 Matrix 构建,您必须遵循 runs
中提供的 link,但您必须咀嚼它给您的 URL(它将构建编号放在错误的地方)。然后你在 linked 构建上调用相同的 API 来删除那个。
据我所知,对于工作流构建,有烦人的消息、好消息、坏消息,甚至更糟的消息。烦人的部分是你必须看到这是一个工作流构建(看看你在没有要求的情况下得到的 _class
属性),然后看看构建 url,但将 wfapi
替换为 api/json
(并忘记其余参数)。然后,您可以按照从中返回的 json
link 来定位故障。好消息是,这让您更好地 link 失败,包括可理解的消息(有时)。
坏消息是我不确定 Build Failure Analyzer 是否为这些正常工作,或者不知道如何在正确的构建步骤上标记它。
更糟糕的消息是,对于我服务器上的许多构建,此 API 似乎根本不起作用。这是即使我可以通过 BlueOcean UI 看到类似的信息。我现在正在调查 运行。
抱歉,这不是一个简单的答案,但据我目前所知,这就是事情的状态。