2016-07-28 97 views

回答

1

這是一個有趣的問題。

我從來沒有找到過這樣的事情,因爲詹金斯只是告訴你,如你所說的好或壞。

一個可能的解決方案是使用Jenkins BFA插件。

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

這個插件可以幫助您自動檢測基於您在配置描述的錯誤模式的錯誤。

然後你可以從jenkins json文件中收集詳細的錯誤信息。

BR,

+0

我已經安裝了BFA插件並配置了故障模式。但是,請你指點我如何在jenkins api json格式中得到這個錯誤。 – user987709

+0

嗨,你需要使用像這樣的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

0

我一直在做刮失敗的一些工作,建立我們的詹金斯實例,然後試圖匹配失敗,包括那些由構建失敗分析歸類,並我可以告訴你這有點令人沮喪。

我們有三種類型的版本(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,但替換wfapiapi/json(並忘記其餘的參數)。然後,您可以按照您返回的json鏈接來查找失敗。好消息是,這給你一個更好的鏈接到失敗,包括可理解的消息(某個時候)。

壞消息是我不確定構建失敗分析器是否正常工作,或者知道如何在正確的構建步驟上標記它。

更糟糕的消息是,對於我的服務器上的大量構建,此API似乎根本不起作用。即使我可以通過BlueOcean UI看到類似的信息。我正在調查現在運行這個。

對不起,這不是一個簡單的答案,但就目前而言,這是事情的狀態。

相關問題