2012-01-07 159 views
1

有沒有辦法讓Jenkins CI服務器忽略某些錯誤?使詹金斯忽略cmake錯誤

在一個項目中,我需要多次運行cmake才能成功(我無法改變它)。在第一次和第二次運行中可能會發生錯誤,我想忽略它。 是否有可能以這種方式在jenkins中配置構建?

+4

你已經知道這聽起來像,但我會重新迭代:這裏有些事情是錯誤的,並且你試圖繞過它,使它更加錯誤。 – 2012-01-07 19:27:33

+0

是的,我同意。如果您需要在構建之前生成某些內容,則可以在編譯任何代碼之前添加構建階段,例如。 – 2012-01-07 21:03:34

+0

能否請您詳細說明>在一個項目中,我需要多次運行cmake才能成功(我無法改變這一點)。 – arrowd 2012-01-08 09:00:32

回答

0

雖然我同意其他人一般認爲您的構建過程有問題,但有一種方法可以解決它(直到它被修復)。

對於每個cmake調用,使用執行shell(或Windows批處理文件,具體取決於您的環境)的獨立構建步驟。對於前兩種,你應該有兩行

cmake <....some stuff...> 
exit 0 

第一個將執行你的cmake。第二個設置Jenkins將會看到的返回值。返回0表示詹金斯沒有失敗。

對於最後一個,你不想出口0,因爲你想要捕獲任何錯誤。

更新:我遇到了一種情況,Jenkins會在返回非零的第一行放棄shell腳本。我找到的解決方案其實很簡單。將「退出0」與導致非零結果的命令放在同一行。

cmake <....some stuf...> ; exit 0 
+0

謝謝,這與我找到的「解決方案」類似,謝謝。 我知道cmake的使用方式並不好,但正如我所說的,我無法更改cmake腳本。 – jzwiener 2012-01-18 13:53:54

+0

我有類似的問題,這對我不起作用。在退出0之前可以執行,已經有stderr輸出,jenkins作業被暫停/標記爲錯誤...雖然? – 2014-09-29 19:10:15

+1

@JorgeOrpinel我用我找到的解決方案更新了答案。 – jwernerny 2014-09-30 13:53:11