一尘不染

Jenkins和多配置(矩阵)作业

jenkins

为什么Jenkins有两种工作,即多配置项目和自由样式项目?我读过某个地方,一旦选择其中一个,就无法(轻松地)转换为另一个。为什么我不总是选择多配置项目以确保将来的更改安全?

我想为在Windows和Unix(以及其他平台)上构建的项目设置构建。我发现了这个问题),它提出了相同的问题,但我并没有真正找到答案。为什么我需要三个矩阵项目(而不是三个自由样式项目),每个平台一个?为什么不能将它们全都放在一个矩阵中,而在一个轴上使用平台和(例如)gcc版本,在另一轴上使用(我的)软件版本?

我也阅读了这篇博文,但这一切都是在同一台机器上构建的,只是Python版本不同。

简而言之:大多数人如何配置针对许多不同平台的多配置项目?


阅读 492

收藏
2020-07-25

共1个答案

一尘不染

两种类型的作业具有独立的功能:

  • 自由式作业:这些作业可让您在单台计算机或标签(计算机组,例如“ Windows-XP-32”)上构建项目。
  • 多重配置作业:这些作业使您可以在多台计算机或标签上,或在两者的混合结构上构建项目,例如Windows-XP,Windows-Vista,Windows-7和RedHat- 可用于检查兼容性或为多个平台构建(qt程序?)

如果您有要在Windows和Unix上构建的项目,则有两个选择:

  • 为每种配置创建一个单独的自由式作业,在这种情况下,您必须分别维护每个作业
  • 您有 一个 多配置作业,并且选择了2个(或更多)标签/计算机/从属设备-Windows为1,Unix为1。在这种情况下,您只需要维护一份工作即可进行构建

您可以将gcc版本保留在一个轴上,将软件版本保留在另一个轴上。没有理由您不应该这样做。

你链接的问题有一个公平点,而是一个不涉及直接的问题:在他的情况,他有一个多配置作业 一个 ,这-成功-触发另一个作业
。现在,在多配置作业中,如果其中一项配置失败,则整个作业都会失败(显然,因为您希望项目在所有配置上成功构建)。

恕我直言,要在多个平台上构建同一项目,更好的方法是使用多配置样式的作业。

2020-07-25