如何在Jenkins项目中跳过批处理错误步骤继续执行
解决Windows下Jenkins批处理忽略命令错误继续执行的问题
在Windows的Jenkins批处理步骤中,当第三方命令mycommand执行失败返回非0退出码时,Jenkins会终止后续步骤。要让sonar-scanner继续执行,可以通过以下两种简单方法实现:
方法一:用||追加成功命令覆盖退出码
在mycommand命令后通过||追加一个必然执行成功的命令,确保整行命令的退出码为0,Jenkins就不会中断后续执行。示例:
mycommand test --machine --coverage > tests.output || echo 测试命令执行失败,继续执行SonarQube分析 > nul sonar-scanner
解释:||表示仅当前面的命令失败时才执行后面的命令,echo ... > nul是一个始终成功的操作,会将整行的退出码重置为0,让Jenkins判定该步骤成功,继续执行sonar-scanner。
方法二:强制重置ERRORLEVEL
在mycommand执行后,手动将系统的ERRORLEVEL环境变量设为0,覆盖原有的错误码。示例:
mycommand test --machine --coverage > tests.output set ERRORLEVEL=0 sonar-scanner
解释:ERRORLEVEL存储了上一条命令的退出码,强制将其设为0后,Jenkins会认为前序命令执行成功,进而执行后续的sonar-scanner。
内容的提问来源于stack exchange,提问作者Anon
相关产品推荐
相关产品推荐

