詹金斯 - 有一个构建的几种“味道”

时间:2013-10-04 17:31:42

标签: jenkins jenkins-plugins

我们需要构建一大堆产品(20多个),每个产品都建立在3个平台上,现在我已经要求每个产品都有3种不同类型的构建 - 1)每当SCM发生变化时。不要清除工作区,进行单元测试的子集。 2)每晚午夜。首先清除工作区,进行所有单元测试。 3)发布候选,手动触发。使用版本号标记SCM中的文件,清除工作区,执行所有单元测试,从单个存档中收集所有3个平台的输出。

我为每个在3个平台上构建产品的产品创建了一个多配置“矩阵”作业,但现在我不确定包含3种类型构建的最佳方式 - 我是而不是创造每份工作的3份副本,这听起来像是我的维护噩梦。

关于最不愉快的方法的建议?

谢谢, 克里斯

3 个答案:

答案 0 :(得分:0)

不确定这些工作中的实际构建部分对您来说有多复杂。但是,我会创造3个工作,因为它们差别很大。

然而,job2似乎是job3的一个子集。所以你可能能够解决一下job3触发job2并且只做prebuild和postbuild的工作。我现在无法将job1和2结合起来。

答案 1 :(得分:0)

数字1可以作为单独的作业或批处理任务完成。在作业的高级功能中,您可以让作业2使用作业1的工作区。对于Maven Jobs,它可以在Build - >中配置。复选框以使用自定义工作区。对于工作免费,它在“高级项目选项”

3号可以使用3个或4个不同的插件(Subversion Tagging插件,Artifactory插件,Artifactory Pro,Promoted Builds,Release插件)

答案 2 :(得分:0)

完全区分要求......

你有不同的构建 ......因为它们将完全不同,不同的代码或平台或大的东西。

你有参数化构建 ...这些将构建在具有不同参数的相同代码库上

你有不同的触发器 ...即。计时器或办理登机手续。

你必须为不同的构建做一个单独的工作,你可以为参数化的构建做一个不同的工作...
对于触发器,每个作业可以有多个触发器......
所以你为不同的触发器做一个单独的构建的原因就像是你有一个长期运行的测试集,你只想每晚测试而不是每次检查

对于参数,可以为每个手动作业启动填充它们,也可以将它们分批导入到导入的文件中......您可以根据需要构建尽可能多的配置管理,它是一个非常灵活的工具。