2014-09-29 40 views
3

我有一個運行一些shell命令(linux)的jenkins ci作業。具體來說,我正在使用git repo並使用git add remote來確保在運行其他命令之前設置了遠程設備。通常情況下,遙控器仍然在那裏,並有stderr輸出說「致命的:遠程foo已經存在」這是我的罰款,但先生。詹金斯停止工作並將其標記爲失敗。讓詹金斯忽略stderr的方法?

我該如何告訴詹金斯忽略這個stderr或它的預期?還是有更聰明的方法呢?

在此先感謝。

回答

2
git add remote git_repo || true 

這會返回一個0退出狀態

2

問題是詹金斯着眼於退出代碼,如果任何目標的運行返回一個非零退出代碼將無法構建。所以忽略STDERR將無濟於事。事實上,這可能是不好的,因爲如果你隱藏了STDERR,其他地方的任何真正的失敗都不會出現在Jenkins日誌中。

如果遠程已存在,則您正在運行的git命令將返回1。解決辦法是包裝git命令並忽略退出值並返回自己的退出值

+0

謝謝,雖然@Keeto解決了它,但是您解釋了它。問:你如何「包裝git命令並忽略退出值並返回自己的」? – 2014-09-29 22:06:49