2
我剛剛試驗Jenkins並設置了一些項目。一個特別調用一個shell腳本,並從該腳本退出代碼正確拾取,產生通過/失敗。然而,當我從命令行調用Scala時,無論發生什麼,它都會通過。Jenkins在Scala失敗時報告成功
在執行殼箱:
/opt/scala/2.9.1/bin/scala sdfsdfsd
Exception in thread "main" java.lang.RuntimeException:
Cannot figure out how to run target: sdfsdfsd
... (stack trace removed)
Finished: SUCCESS
然而這樣做與Java等效產生一個錯誤:
/opt/java/jdk1.7.0/bin/java sdfdfsd
Error: Could not find or load main class sdfdfsd
Finished: FAILURE
運行時,從bash的(與回聲這兩個產生的1的退出代碼$?)
我錯過了什麼,或者這是一個錯誤?
編輯:
有趣的是,我用螞蟻Exec時我看到了同樣的現象 - 當我調用包含Scala的無效電話,我得到預期的錯誤代碼的shell腳本,而是通過螞蟻(與failonerror =」真')我看到零,並建立成功。
由於
那些'...'表示其他命令正在執行嗎?如果我沒有完全誤導,Jenkins只會選擇最後執行的命令的退出代碼,所以如果腳本中有另一個命令在scala失敗後執行,並且此命令成功,Jenkins仍會認爲這是成功的。 – pushy
對不起,它只是來自java/scala的附加堆棧跟蹤/其他輸出。 – David
你有沒有試過'echo $?'從詹金斯的腳本內?如果你是從bash而不是Jenkins做的話,可能會有些不同。你也可能想嘗試像'if $? == 1 exit 1'(< - 這只是僞代碼,當然;-)) – pushy