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

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

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

【问题讨论】:

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

标签: c++ cmake jenkins


【解决方案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 也适用于我 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-17
  • 1970-01-01
  • 1970-01-01
  • 2015-08-22
  • 1970-01-01
  • 2012-06-17
  • 1970-01-01
相关资源
最近更新 更多