Jenkins 哈德逊-建筑矩阵项目经验
有没有人尝试过这个功能并得到一些反馈?或者有人知道一些有用的示例可供查找吗?几个月前我尝试过这个功能,但我不再使用它(只是因为我不需要它,而不是因为它不是一个好功能) 基本上,定义n轴,每个轴都是具有多个值的属性 让我们来看一个例子:您使用可能的值“1.4”、“1.5”、“1.6”定义轴“JDK”,并定义另一个属性“database”,其中可能的值是“oracle”、“mysql” 因此,Hudson将启动您的构建6次:Jenkins 哈德逊-建筑矩阵项目经验,jenkins,continuous-integration,hudson,Jenkins,Continuous Integration,Hudson,有没有人尝试过这个功能并得到一些反馈?或者有人知道一些有用的示例可供查找吗?几个月前我尝试过这个功能,但我不再使用它(只是因为我不需要它,而不是因为它不是一个好功能) 基本上,定义n轴,每个轴都是具有多个值的属性 让我们来看一个例子:您使用可能的值“1.4”、“1.5”、“1.6”定义轴“JDK”,并定义另一个属性“database”,其中可能的值是“oracle”、“mysql” 因此,Hudson将启动您的构建6次: 对于JDK1.4,属性数据库=oracle(即JVM是使用-Ddatab
- 对于JDK1.4,属性数据库=oracle(即JVM是使用-Ddatabase=oracle启动的)
- 对于JDK1.5,属性数据库=oracle
- 对于JDK1.6,属性数据库=oracle
- 对于JDK1.4,属性数据库=mysql
- 对于JDK1.5,属性数据库=mysql
- 对于JDK1.6,属性数据库=mysql
我希望我的解释足够清楚:)矩阵构建有许多问题:
- 与插件完全不兼容-它们正在变得更好,但您需要保持非常及时的更新
- 工件-更难扭转-URL有点尴尬,在FS上找到它们(无论如何都应该避免)现在是一场噩梦
编辑
- 无法启动单点
我们通常的解决方法是将参数化的构建设置为并发运行,这会带来自身的问题,但可以避免我们有许多具有相同代码和不同常量的作业。如何访问非Java项目的这些属性?作为环境变量?@Sridhar通常是的,这些属性由Hudson设置为当前构建的环境变量。好的,这个问题已经过期很久了,但我在设置矩阵项目时遇到了困难-有关于如何配置的指针吗?:)我需要的是使用Jenkins groovy库来确定轴。有办法吗?我希望能够使用
和凭据
,sh
等工具提取值您有更好的建议吗?我正在考虑使用矩阵构建将我们的unittest套件分割成若干相同的作业,每个作业运行套件的不同子集(将我们的测试周期从当前的40分钟提高到我们在构建步骤中实际使用代码来启动参数化作业,因此父级“kicker”或“scheduler”作业,启动下游作业。我们使用原因参数将它们链接起来,使用guid参数在离开队列后查找作业,以便父作业可以显示它启动的所有子作业。这是-单个作业被参数化,并且可以使用父作业+其他视图创建工具来查看它们。我们还使用允许并发运行功能.