我有一個 Jenkins 專案,在其中我在 Windows 作業系統中運行聲納分析。
在 jenkins 中,我或多或少地創建了一個批處理步驟,如下所示:
mycommand test --machine --coverage > tests.output
sonar-scanner
mycommand是我無法修改的第 3 方插件,并且根據專案的內容,此步驟可能會失敗,我希望 jenkins 佇列繼續執行其他命令。
現在如果 mycommand 回傳錯誤 jenkins stop。
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
這里的魔力在于您的命令的回傳碼。在不知道它是什么以及它做什么的情況下,重要的是,如果任何命令回傳非零退出代碼,Jenkins 會將該命令視為失敗。為了防止 Jenkins 注冊任何錯誤,請添加exit 0到命令中。
例如
bat """
mycommand test --machine --coverage > tests.output || exit /b 0
"""
bat """
sonar-scanner
"""
應該為此作業。
或者,您也可以將命令鏈接在一起,&這樣 Jenkins 就不會在一切完成之前檢查退出代碼,但是第二個命令也將始終顯示為已通過,無論其實際狀態如何。此外,使用冗長的命令鏈可能會變得難以閱讀。
bat """
mycommand test --machine --coverage > tests.output & sonar-scanner & exit /b 0
"""
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/524131.html
標籤:詹金斯
