我有一组作业,它们只在他们构建的分支和其他一些属性中有所不同。这些作业有一个相当复杂的构建脚本,所以我想避免维护该脚本的多个副本。
避免冗余配置的一种可能方法是使用构建脚本设置一个主作业,并使用与其他作业不同的参数触发该作业。然而,这种方法有以下缺点:
所以我的问题是:是否可以在触发作业中“内联”执行主要工作,而不是触发主要工作?
E.g。如果主要作业的控制台输出将直接打印在触发作业的控制台中,那将是很好的。此外,主要作业应使用触发作业的工作空间(或触发作业工作空间的子文件夹中的工作空间)。
答案 0 :(得分:3)
Template Project Plugin完全提供了我正在寻找的功能。
它提供了一个构建步骤“从另一个项目执行构建器”,它允许执行在触发作业中配置的其他作业的构建步骤。
这太棒了:我现在可以从我的构建作业中“提取方法”(到新的“模板”作业),并根据需要将它们连接在一起。
答案 1 :(得分:0)
我有一个运行500多个构建作业的Hudson实例存在类似的可管理性问题 - 使用gui手动维护许多作业是不切实际的。但是,您可以使用 CLI 远程和编程地在Jenkins和Hudson中配置作业 - 它是作为jar文件提供的 [https://wiki.jenkins-ci.org/display/ JENKINS /詹金斯+ CLI]。强>
我将它包装在python中并创建了一个XML文件,用于保存构建配置。这还提供了将CI实例“重置”回已知配置的能力 - 如果您怀疑构建失败是由UI中的手动更改引起的,或者您为部署到的每个环境使用不同的CI服务器(即dev) ,测试,产品)并需要提供一个新的。
如果您使用此方法,您可以编写代码来生成XML文件并配置您的实例。我相信这是一种强大的方法,因为您可以将CI配置保持为修订控制系统。
虽然这不是一个简单的解决方案,但我无法找到或命名一个能够满足您要求的插件 - 这确实为您提供了编写一个插件的机会。