如何绕过Jenkins项目中的批次错误步骤

flvlnr44  于 2022-11-01  发布在  Jenkins
关注(0)|答案(1)|浏览(271)

我有一个Jenkins项目,我在Windows操作系统中运行了一个sonarqube分析。
在jenkins中,我创建了一个大致如下的批处理步骤:

mycommand test --machine --coverage > tests.output
sonar-scanner
  • mycommand* 是一个我不能修改的第三方插件,并且,根据项目的内容,这一步可能会失败,我希望jenkins队列继续使用其他命令。

现在,如果mycommand返回一个错误jenkins stop。
我如何才能做到这一点?

gab6jxml

gab6jxml1#

这里的魔力在于命令的返回代码。在不知道它是什么和它做什么的情况下,重要的是如果任何命令返回非零退出代码,Jenkins会认为该命令失败。为了防止Jenkins记录任何错误,请在命令中添加exit 0
比如说

bat """
mycommand test --machine --coverage > tests.output || exit /b 0
"""
bat """
sonar-scanner
"""

应该能用这个。
或者,你也可以用&将命令链接在一起,这样Jenkins就不会在所有操作完成之前检查退出代码,但是第二个命令也会总是显示为已传递,而不管它的真实状态如何。

bat """
mycommand test --machine --coverage > tests.output & sonar-scanner & exit /b 0
"""

相关问题