4

我正在使用 Jenkins 为我的系统构建多个客户端库,每个库都针对不同的语言。我的配置包括许多不同的构建步骤,每种语言一个,构建和/或测​​试库。

现在,系统中的重大更改将导致第一个构建步骤失败,并且不会运行其他构建步骤,这非常不方便。我需要运行所有构建步骤,以便可以看到所有产生的错误。

一种替代方法是存在一个配置,告诉詹金斯如果前面的构建步骤失败,不要中止后面的构建步骤。我没有找到任何这样的东西,但也许有。

我想到的另一种选择是将每种语言作为单独的构建触发,但是我必须将它们全部捆绑起来以进行后期构建步骤,我不知道该怎么做。

而且,当然,我可能缺少一些东西。

以上任何一项都可以解决我的问题。那么,我应该怎么做,我该怎么做呢?

4

2 回答 2

2

Multijob插件是您正在寻找的我经常使用这个插件。看看他们的截图 - 您可以指定三个选项来将一个阶段(一个阶段可以有多个作业)标记为成功

  • 当 Phase Job 的构建成功时
  • 即使 Phase Job 的构建不稳定
  • 即使阶段作业的构建失败-这就是您需要的

在您的情况下,您可以创建一个多作业作业,每个“客户端库”都有一个阶段。并将您各自的“客户库”作业添加到他们的短语中。因此,如果您有 10 个“客户端库”作业,那么您最终将在此 MutliJob 中拥有 10 个阶段(每个阶段一个)。并且不要忘记将“当阶段作业的状态为“完成(始终继续) ”时将阶段标记为成功

我通常不喜欢为此目的使用下游作业,因为 Jenkins 中没有漂亮的 UI 可以在单个页面中查看整个构建流程。当然有这个Build Pipeline Plugin可以显示每个构建流程状态。您可以根据需要选择合适的插件。

于 2013-03-28T20:15:31.037 回答
1

为了使这项工作在一项工作中发挥作用,我认为您需要使构建步骤不会失败(返回非零退出代码)。然后,如果需要,您需要一个构建后步骤来分析测试结果并标记构建失败或不稳定。

在运行构建/测试操作后,您可能需要编写一个包装器脚本来执行构建,例如简单的 .BAT 或 shell 脚本,exit 0最后一行。

执行这种测试结果处理的构建后操作的示例是Publish JUnit 测试结果报告

于 2013-04-05T08:04:55.687 回答