我正在通过jenkins执行Windows bat脚本。批处理文件提供了所需的输出,但构建失败。我的批处理文件是..
cd /d D:\\Bank\\Member\\ID
if %errorlevel% neq 0 exit /b %errorlevel%
mkdir OTP
if %errorlevel% neq 0 exit /b %errorlevel%
robocopy C:\Corporate D:\\Bank\\Member\\ID\ /E /XF *.bat
if %errorlevel% neq 1 exit /b %errorlevel%
cd /d D:\\Bank\\Staff\\ID
ROBOCOPY在大量复制文件后提供退出代码1。
但是JENKINS失败并且给予以下错误:
Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE
如果robocopy
退出代码1,我希望构建成功。
答案 0 :(得分:2)
我最好的建议是使用jenkins-pipeline,try / catch块,尽可能少地使用bat命令(或根本不使用)。
但考虑到你的情况,也有一个简单的解决方案:只需将字段“ERRORLEVEL设置为不稳定”设置为1(或其他合适的数字)。如果单击“执行Windows批处理命令”块下的“高级”按钮,则会出现该字段:
此方法会将您的构建检查为“不稳定”,但会继续执行。
答案 1 :(得分:0)
As mentioned here,要检查的第一个标准是用于运行Jenkins的帐户。
键入services.msc
以打开Windows服务并查找Jenkins服务。
使用您自己的帐户代替“本地服务帐户”:这将避免任何正确的问题。
但是:其他标准是显示错误代码 正如mentioned here:
所有退出代码最多为'3'都没问题。
所以在robocopy
之后,您可以添加:
@echo robocopy exit code: %ERRORLEVEL%
@if %ERRORLEVEL% GTR 3 ( echo robocopy ERROR )
@if %ERRORLEVEL% GTR 3 ( exit %ERRORLEVEL% )
@set ERRORLEVEL=0
REM at the end:
exit /b 0
这将确保Jenkins不会使批处理步骤失败,即使robocopy的原始错误级别为1。
答案 2 :(得分:0)
请使用以下内容以避免:
add_action( 'woocommerce_email_before_order_table',
'bbloomer_add_content_specific_email', 20, 4 );
function bbloomer_add_content_specific_email( $order, $sent_to_admin, $plain_text, $email ) {
if ( $email->id == 'customer_completed_order' ) {
echo '<p class="email-text-conditional">Thank you for your order with Adventure Clues, we have sent your recipient the gift card’</p>';
}
}
即使robocopy返回非零错误级别,上面将继续jenkins构建。即使在成功复制之后,Robocopy也不会因各种原因返回0,因为它比较了两个文件夹。请查找它的返回码以了解更多详情