让 Jenkins 忽略 cmake 错误

Posted

技术标签:

【中文标题】让 Jenkins 忽略 cmake 错误【英文标题】:make Jenkins ignore cmake errors 【发布时间】:2012-01-07 19:24:04 【问题描述】:

有没有办法让 Jenkins CI 服务器忽略某些错误?

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

【问题讨论】:

你已经知道这听起来像,但我会重申:这里出了点问题,你试图绕过它,使它更多错了. 是的,我同意。例如,如果您需要在构建之前生成某些内容,则可以在编译任何代码之前添加构建阶段。 您能否详细说明一下> 在一个项目中,我需要多次运行 cmake 才能使其成功(我无法更改)。 【参考方案1】:

虽然我同意其他人的观点,一般来说您的构建过程似乎存在问题,但有一种方法可以解决它[直到它被修复]。

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

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

第一个将执行您的 cmake。第二个设置 Jenkins 将查看的返回值。返回 0 告诉 Jenkins 没有失败。

对于最后一个,您不想退出 0,因为您希望捕获任何错误。

更新:我遇到了 Jenkins 会在第一行中止返回非零的 shell 脚本的情况。我找到的解决方案实际上非常简单。将“exit 0”与导致非零结果的命令放在同一行。

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

【讨论】:

谢谢,这类似于我找到的“解决方案”,谢谢。我知道拥有 cmake 的方式并不好,但正如我所说,我无法更改 cmake 脚本。 我有一个类似的问题,这对我不起作用。在执行 exit 0 之前,已经有 stderr 输出,并且 jenkins 作业已停止/标记为错误......尽管如此? @JorgeOrpinel 我已经用我发现可行的解决方案更新了答案。 @jwernery 添加 ||真而不是;出口 0 也适用于我 :)

以上是关于让 Jenkins 忽略 cmake 错误的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins 通过 ssh 发布显示错误“jenkins.plugins.publish_over.BapPublisherException:无法添加 SSH 密钥。”

Linux Centos安装Jenkins

初识Jenkins

redhat安装jenkins

docker安装jenkins

Jenkins代码管理