一、jjb中的变量继承---官网定义
在JJB中可以为不同级别的变量定义默认值,这样用户可以覆盖job-templates中定义的变量。
每种定义类型的变量优先级如下:
- job-group
- project
- job-template
- defaults
从这个列表中我们可以看到,如果我们想在job-templates中覆盖变量,那么使用defaults配置是没用的,因为它具有最低优先级。
另一方面,job-group具有最高优先级。如果我们在job-group中定义一个变量并打算在项目级别覆盖它,是无法做到的。因此,请避免在job-group中设置变量,除非我们要对一组job强制执行设置并阻止projects覆盖它。
二、一些实践
对于project和job-template中变量定义的细节,我做了一些试验,结果如下:
1.
- project:
name: foo
tasty: 'project-tasty'
module:
- apple:
tasty: 'module-apple-tasty'
- orange
stream:
- master:
tasty: 'stream-master-tasty'
jobs:
- '{module}-verify-{stream}'
- job-template:
name: '{module}-verify-{stream}'
project-type: pipeline
sandbox: true
tasty: 'job-template-tasty'
parameters:
- string:
name: TASTY
default: '{tasty}'
dsl:
!incl

本文介绍了Jenkins Job Builder (JJB) 中变量继承的规则及其覆盖顺序。按照job-group、project、job-template和defaults的优先级,job-group具有最高优先级,而defaults具有最低优先级。在实践中,通过实验展示了project和job-template中变量定义如何影响最终job的参数。内容包括变量覆盖的具体例子,以帮助理解JJB的变量管理机制。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



