小编Ant*_*sso的帖子

Jenkins Job-Builder:如何正确地包含外部文件中的作业模板?

我正在调查使用Jenkins Job-Builder(来自OpenStack)作为管理jenkins作业配置的方法.在这样做的过程中,我试图找出使用!include自定义标记从外部文件中包含作业模板的正确(最佳?)方式.

在当前的用例中,我们基本上会有一个模板将被很多工作使用.由于这里超出范围的原因,每个作业都需要存在于自己的文件中.

到目前为止,我已经得到了这个工作:

作业template.yml

name: 'pre-build-{proj}-{repo}'
project-type: freestyle
... etc ...
Run Code Online (Sandbox Code Playgroud)

作业1.yml

- job-template:
    !include job-template.yml

- project: 
    name: job-1
    proj: my-proj
    repo: my-repo
    jobs:
      - 'build-config-{proj}-{repo}'
Run Code Online (Sandbox Code Playgroud)

这似乎是错误的,因为模板定义会在两个文件中分开,并且需要-job-template:在每个作业文件中进行不必要的重复行.我希望以下工作:

作业template.yml

- job-template:
    name: 'pre-build-{proj}-{repo}'
    project-type: freestyle
    ... etc ...
Run Code Online (Sandbox Code Playgroud)

作业1.yml

!include job-template.yml

- project: 
    name: job-1
    proj: my-proj
    repo: my-repo
    jobs:
      - 'build-config-{proj}-{repo}'
Run Code Online (Sandbox Code Playgroud)

不幸的是,后者导致行上的yaml解析错误- project::

yaml.scanner.ScannerError:"job-1.yml",第3行,第10列中不允许使用映射值

有没有办法将整个模板定义放入模板文件中?如果我们需要从多个文件中提取多个模板,这将变得特别烦人.

jenkins jenkins-job-builder

9
推荐指数
1
解决办法
4117
查看次数

标签 统计

jenkins ×1

jenkins-job-builder ×1