簡體   English   中英

Jenkins - Jenkins 中的 robocopy 完成標記構建失敗

[英]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 0exit 1結束您的腳本。

查看robocopy 退出代碼

為詹金斯管道更新這個問題 - 這對我有用:

    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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM