背景:
我们正计划从Teamcity迁移到Jenkins。大多数项目是C/C++,源代码在ClearCase中,将使用自定义构建系统。我们不会签出某个机器的源代码并进行构建,而是在远程ClearCase节点上执行build命令。
因此,在Teamcity中构建项目的配置(只需提到命令、参数和节点)是相当简单的。由于构建配置很简单,我们认为Jenkins可以提供我们正在寻找的所有特性。
问题:
但是,我们有一些项目必须建立在不同的平台上(AIX、LINUX、Windows.(32位/64位.等),并且应该建立在具有不同构建参数的特定节点上。Teamcity允许我们为每个平台创建一个项目并在其中创建多个构建配置。对于每个构建配置,我们可以指定参数/构建nodes...etc。
当我在Jenkins中寻找类似的特性时,我发现了多配置项目。我知道我们可以为平台定义一个轴,但是我无法理解如何为特定的平台指定特定的从节点。我不希望在所有从节点上执行构建。对于构建参数和build命令也可以这样说。对于每个构建配置,我可能需要不同的参数和构建命令。
在Jenkins的多配置项目中,是否可以将每个构建配置配置为具有独立的从/命令/参数设置?
Jenkins文档在这方面不是很好。为每个构建配置创建一个单独的项目不是一个好主意。如果我有20个有10个平台的项目,那么我最终会在Jenkins创建200个项目。在Teamcity中,我可以创建20个项目,并在每个项目中创建10个构建配置。
发布于 2014-12-08 08:53:52
如果进入> Manage节点,就可以为定义的节点添加标签。您可以在添加节点时添加标签,这取决于创建节点的方式。
您可以在它们的体系结构上定义它们,这样平台就是节点,如果您想要更多的节点,那么它们可以有相同的标签。
你会做这样的事

这只负责在您想要的体系结构上运行作业。
我认为您的配置问题可以通过作业-DSL-插件来解决,它允许您创建有目的的DSL作业。
编辑:我找到了一个更好的解决方案
您可以使用PlatformLabel插件将平台绑定到节点标签,该插件将在添加节点时将标签添加到节点--您可以在config >manage>单击该节点中看到这些标记。
然后,在一个矩阵/多配置作业中,您可以使用“从”轴(请注意,只有在连接节点时才得到这个轴),并在label部分找到所有的选项,检查您想要的

若要根据平台有条件地运行步骤,可以使用运行条件插件
我使用正则表达式匹配
表达式: Debian标签:${ENV,var="PLATFORM"}
,它假定您希望运行Debian的步骤,并且轴被称为PLATFORM。

https://stackoverflow.com/questions/27352582
复制相似问题