是否可以将Jenkins自由式作业转换为多配置作业?

时间:2011-10-03 14:22:16

标签: build jenkins hudson multi-configuration

我在Jenkins有很多自由式工作,我想转换为多配置工作,这样我就可以在一个工作下跨多个平台构建。这些作业指定了相当多的构建参数,我不想通过创建新的多配置作业来再次手动设置它们。目前,每项工作都将其构建限制在我们一直在构建的平台上,而我看到的唯一其他选项是克隆现有作业并将限制更改为新平台。这并不理想,因为我需要维持2个工作,唯一的区别是目标平台。

我没有看到通过用户界面执行此操作的方法,但想知道是否有其他方法。

3 个答案:

答案 0 :(得分:22)

据我所知,没有办法在UI中转换作业类型。您必须编辑作业的 config.xml ,或者复制和编辑配置文件,并根据编辑的配置创建新作业。

你必须检查自由风格和自由风格之间的差异 具有您使用的各种设置的多配置作业。它可能是 将 config.xml 中的顶级元素从project更改为matrix-project非常简单。

如果编辑现有作业配置,则需要同时执行此操作 Jenkins离线,或者告诉Jenkins通过管理重新加载其配置 詹金斯 - > 从磁盘重新加载配置

如果您决定创建新职位,this previous question可能会有所帮助 你弄清楚需要做什么编辑。具体来说,this answer描述了如何 上传配置文件以创建新作业。

答案 1 :(得分:4)

对于那些希望从maven转为自由式工作的人来说,只需注意。

  1. maven2-moduleset标记更改为project
  2. 删除代码:rootModulegoalsmavenValidationLevel(应该彼此靠近)。
  3. prebuilderspostbuilders合并到builders

答案 2 :(得分:2)

我刚写了一个脚本,将大约10000个詹金斯职位从Maven Job Type转换为Freestyle。请不要盲目使用它。您可能会丢失配置选项或最终导致损坏的Jenkins设置。 Python部分将config xml作为参数,并使用转换后的数据覆盖相同的文件。我使用以下命令在Jenkins文件系统上运行了这个:

IList

dataGrid.ItemsSource = new List<object> { whatever };

再次警告。这可能会打破你的詹金斯!请保留备份!

cd /path/to/jenkins/jobs