我正在尝试找到一种方法来继承/覆盖通过 jenkins-job-builder (jjb) 定义的 jenkins 作业中的环境变量。
这是一个不起作用的模板:
#!/usr/bin/env jenkins-jobs test
- defaults: &sample_defaults
name: sample_defaults
- job-template:
name: 'sample-{product_version}'
project-type: pipeline
dsl: ''
parameters:
- string:
name: FOO
default: some-foo-value-defined-at-template-level
- string:
name: BAR
default: me-bar
- project:
defaults: sample_defaults
name: sample-{product_version}
parameters:
- string:
name: FOO
value: value-defined-at-project-level
jobs:
- 'sample-{product_version}':
product_version:
- '1.0':
parameters:
- string:
name: FOO
value: value-defined-at-job-level-1
- '2.0':
# this job should have:
# FOO=value-defined-at-project-level
# BAR=me-bar
请注意,能够在作业或项目级别而不是模板覆盖这些参数是关键。
要求 * 能够像这样添加尽可能多的环境变量,而不必为每个变量添加一个 JJB 变量 * 不应强迫用户在模板或作业级别定义这些 * 这些 var 最终需要在运行时作为环境变量公开用于管道和自由式工作。* 语法很灵活,但字典方法将受到高度赞赏,例如:
vars:
FOO: xxx
BAR: yyy