2012-01-07 122 views
1

有没有办法让Jenkins CI服务器忽略某些错误?使詹金斯忽略cmake错误

在一个项目中,我需要多次运行cmake才能成功(我无法改变它)。在第一次和第二次运行中可能会发生错误,我想忽略它。 是否有可能以这种方式在jenkins中配置构建?

+4

你已经知道这听起来像,但我会重新迭代:这里有些事情是错误的,并且你试图绕过它,使它更加错误。 – 2012-01-07 19:27:33

+0

是的,我同意。如果您需要在构建之前生成某些内容,则可以在编译任何代码之前添加构建阶段,例如。 – 2012-01-07 21:03:34

+0

能否请您详细说明>在一个项目中,我需要多次运行cmake才能成功(我无法改变这一点)。 – arrowd 2012-01-08 09:00:32

回答

0

虽然我同意其他人一般认为您的构建过程有问题,但有一种方法可以解决它(直到它被修复)。

对于每个cmake调用,使用执行shell(或Windows批处理文件,具体取决于您的环境)的独立构建步骤。对于前两种,你应该有两行

cmake <....some stuff...> 
exit 0 

第一个将执行你的cmake。第二个设置Jenkins将会看到的返回值。返回0表示詹金斯没有失败。

对于最后一个,你不想出口0,因为你想要捕获任何错误。

更新:我遇到了一种情况,Jenkins会在返回非零的第一行放弃shell脚本。我找到的解决方案其实很简单。将“退出0”与导致非零结果的命令放在同一行。

cmake <....some stuf...> ; exit 0 
+0

谢谢,这与我找到的“解决方案”类似,谢谢。 我知道cmake的使用方式并不好,但正如我所说的,我无法更改cmake脚本。 – jzwiener 2012-01-18 13:53:54

+0

我有类似的问题,这对我不起作用。在退出0之前可以执行,已经有stderr输出,jenkins作业被暂停/标记为错误...虽然? – 2014-09-29 19:10:15

+1

@JorgeOrpinel我用我找到的解决方案更新了答案。 – jwernerny 2014-09-30 13:53:11