use*_*244 15 batch-file exit-code robocopy jenkins
我有一个简单的Windows批处理命令(robocopy)返回零错误,但在Jenkins中始终标记为失败.我想知道为什么?
D:\ Jenkins\jobs\Jenkins Config Backup\workspace> exit 1构建步骤'执行Windows批处理命令'将构建标记为失败完成:FAILURE
Rob*_*Fey 20
robocopy返回一个位图
有关详细信息,请参阅此处:http://ss64.com/nt/robocopy-exit.html
总结:所有退出代码最多为'3'都没问题.
这是我经常使用的批处理文件代码:
set SOURCE= ...
set DESTINATION= ...
robocopy /MIR /LOG:example.robocopy.log.txt %SOURCE% %DESTINATION%
@echo robocopy exit code: %ERRORLEVEL%
@if %ERRORLEVEL% GTR 3 ( echo robocopy ERROR )
@if %ERRORLEVEL% GTR 3 ( exit %ERRORLEVEL% )
@set ERRORLEVEL=0
Run Code Online (Sandbox Code Playgroud)
你也可以做一个"转到"但不退出.
Pet*_*tze 12
当批处理脚本的现有代码不为0时,Jenkins将构建标记为失败.如果robocopy是脚本中的最后一个命令,则将获取robocopy退出代码.
Robocopy不遵守标准,即除0之外的退出代码表示构建失败.您需要评估robocopy退出代码并使用exit 0
或exit 1
取决于robocopy的成功结束脚本.
看看robocopy退出代码.
更新jenkins管道的这个问题 - 这对我有用:
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")
}
}
Run Code Online (Sandbox Code Playgroud)
或者,您可能希望查看文件操作插件
归档时间: |
|
查看次数: |
11183 次 |
最近记录: |