我有一个参数化的作业,它带有一个名称,一个SVN存储库和一个共享目录。我需要定期调用这个工作,大约有20套这些参数。目前我刚创造了20个工作岗位,每个人都打电话给主要工作。
这是一个非常繁琐的配置,并使Jenkins的主视图变得混乱。
有更好的解决方法吗?我愿意重组工作或使用插件来隐藏"隐藏"它们。
有关这些工作的更多详情: 我实际上有两种主要工作:
我需要/想要的东西:
答案 0 :(得分:1)
不允许发表评论,但是@Absurd-Mind,听起来你想在一开始就建立一个适合所有人的工作并且现在就爆炸了。如果您有大约20种不同的设置,请尝试找到更大的公共基础或完全拆分它们。
另外,我们也有这样的工作....旧的shell脚本垃圾,好吧,我的一个同事围绕它构建了一个 multijob 管道,可以并行运行。在MultiJob Phase下,您可以将作业执行设置为并行。
但要小心,如果它包含像bower这样的构建工具,那么你就不能轻易擦除缓存,因为它们共享缓存。
答案 1 :(得分:1)
您可以使用Pipeline插件并编写groovy代码来执行此操作。您可以为所需的每组参数添加一组复选框输入参数,1,然后使用该组参数有条件地执行另一个作业。
node: {
stage ('set1') {
if(env.build_set1) {
build job: 'main_job', parameters: [[$class: 'StringParameterValue', name: 'name', value: 'Name1'], [$class: 'StringParameterValue', name: 'directory', value: 'dir1']]
}
}
stage ('set2') {
if(env.build_set2) {
build job: 'main_job', parameters: [[$class: 'StringParameterValue', name: 'name', value: 'Name2'], [$class: 'StringParameterValue', name: 'directory', value: 'dir2']]
}
}
}
此示例按顺序运行,但您也可以make these jobs run in parallel。