一、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-tas