我在Jenkins有很多自由式工作,我想转换为多配置工作,这样我就可以在一个工作下跨多个平台构建。这些作业指定了相当多的构建参数,我不想通过创建新的多配置作业来再次手动设置它们。目前,每项工作都将其构建限制在我们一直在构建的平台上,而我看到的唯一其他选项是克隆现有作业并将限制更改为新平台。这并不理想,因为我需要维持2个工作,唯一的区别是目标平台。
我没有看到通过用户界面执行此操作的方法,但想知道是否有其他方法。
答案 0 :(得分:22)
据我所知,没有办法在UI中转换作业类型。您必须编辑作业的 config.xml ,或者复制和编辑配置文件,并根据编辑的配置创建新作业。
你必须检查自由风格和自由风格之间的差异
具有您使用的各种设置的多配置作业。它可能是
将 config.xml 中的顶级元素从project
更改为matrix-project
非常简单。
如果编辑现有作业配置,则需要同时执行此操作 Jenkins离线,或者告诉Jenkins通过管理重新加载其配置 詹金斯 - > 从磁盘重新加载配置。
如果您决定创建新职位,this previous question可能会有所帮助 你弄清楚需要做什么编辑。具体来说,this answer描述了如何 上传配置文件以创建新作业。
答案 1 :(得分:4)
对于那些希望从maven转为自由式工作的人来说,只需注意。
maven2-moduleset
标记更改为project
。rootModule
,goals
,mavenValidationLevel
(应该彼此靠近)。prebuilders
和postbuilders
合并到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