如何在Hudson / Jenkins中执行所有构建步骤?

时间:2013-03-28 17:20:37

标签: jenkins

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

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

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

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

当然,可能还有一些我不知道的事情。

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

2 个答案:

答案 0 :(得分:2)

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

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

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

我通常不喜欢将Downstream Jobs用于此目的,因为Jenkins没有很好的用户界面来查看单个页面中的整个构建流程。当然,有Build Pipeline Plugin显示每个构建流程状态。您可以根据需要选择合适的插件。

答案 1 :(得分:1)

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

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

执行此类测试结果处理的构建后操作示例是发布JUnit测试结果报告