【发布时间】:2015-09-07 16:13:09
【问题描述】:
我们有一个 Jenkins 设置(目前不使用 Jenkins Job Builder 管理),其中每个 Web 项目都有 5 个非常相似的 Jenkins 作业。这是一个简化的 Jenkins Job Builder yaml 文件,可以满足我们的需求:
- defaults:
name: global
project-type: 'freestyle'
disabled: false
buildTargets: 'build'
- job-template:
name: '{jobNameFirstSegment}-{jobNameSecondSegment}'
defaults: global
builders:
- ant:
targets: '{buildTargets}'
buildfile: 'build.xml'
- project:
name: lorem
jobNameFirstSegment:
- foo:
displayNameFirstSegment: 'Foo'
urlGitRepository: 'git@bitbucket.org:mycompany/foo.git'
- bar:
displayNameFirstSegment: 'Bar'
urlGitRepository: 'git@bitbucket.org:mycompany/bar.git'
- baz:
displayNameFirstSegment: 'Baz'
urlGitRepository: 'git@bitbucket.org:mycompany/baz.git'
jobNameSecondSegment:
- lorem:
buildTargets: 'build-lorem'
- ipsum:
buildTargets: 'build-ipsum'
- dolor:
buildTargets: 'build-dolor'
- sit:
buildTargets: 'build-sit'
- amet:
buildTargets: 'build-amet'
jobs:
- '{jobNameFirstSegment}-{jobNameSecondSegment}'
此 yaml 文件会产生 15 个 Jenkins 作业 - 所有作业均未禁用:
- foo-lorem
- foo-ipsum
- 美食家
- 坐坐
- foo-amet
- bar-lorem
- bar-ipsum
- bar-dolor
- 酒吧坐
- bar-amet
- baz-lorem
- baz-ipsum
- baz-dolor
- 坐坐
- 巴兹阿梅特
这种设置是否可以禁用特定的 Jenkins 作业?我无法找到如何覆盖“禁用”属性,例如詹金斯的工作“foo-lorem”。如何实现?
事实上,如果需要,我们需要能够覆盖任何 Jenkins 作业的任何属性。这是可行的吗?怎么样?
【问题讨论】:
-
这可能对您有用。 docs.openstack.org/infra/jenkins-job-builder/… 。为该实例传递变量引用很有帮助
标签: jenkins jenkins-job-builder