[英]Jenkins - simply robocopy in Jenkins finishes marks build with failure
我有一個簡單的 Windows 批處理命令 (robocopy),它返回零錯誤,但在 Jenkins 中始終標記為失敗。 我想知道為什么?
D:\\Jenkins\\jobs\\Jenkins Config Backup\\workspace>exit 1 Build step 'Execute Windows batch command'mark build as failure Finished: FAILURE
robocopy 返回位圖
有關詳細信息,請參見此處: http : //ss64.com/nt/robocopy-exit.html
總結:所有退出代碼最多為 '3' 都可以。
這是我通常使用的批處理文件代碼:
set SOURCE= ...
set DESTINATION= ...
robocopy /MIR %SOURCE% %DESTINATION%
@echo robocopy exit code: %ERRORLEVEL%
@if %ERRORLEVEL% GTR 3 ( echo robocopy ERROR )
@if %ERRORLEVEL% GTR 3 ( exit %ERRORLEVEL% )
@set ERRORLEVEL=0
您也可以執行“轉到”而不退出。
當批處理腳本的存在代碼不為 0 時,Jenkins 將構建標記為失敗。如果 robocopy 是腳本中的最后一個命令,則將采用 robocopy 退出代碼。
Robocopy 不遵守除 0 以外的退出代碼表示構建失敗的標准。 您需要評估 robocopy 退出代碼,並根據 robocopy 的成功,以exit 0
或exit 1
結束您的腳本。
為詹金斯管道更新這個問題 - 這對我有用:
def robocopy(cmd)
{
// robocopy uses non-zero exit code even on success, status below 3 is fine
def status = bat returnStatus: true, script: "ROBOCOPY ${cmd}"
println "ROBOCOPY returned ${status}"
if (status < 0 || status > 3)
{
error("ROBOCOPY failed")
}
}
或者,您可能想查看 文件操作插件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.