Ich untersuche mit Jenkins Job-Builder (von OpenStack) als unser Mittel zur Verwaltung von jenkins Jobkonfigurationen. Dabei versuche ich, die richtige (beste?) Möglichkeit zu finden, eine Job-Vorlage aus einer externen Datei mit dem benutzerdefinierten Tag !include
aufzunehmen.Jenkins Job-Builder: Wie schicke Job-Templates korrekt aus externen Dateien?
Im aktuellen Anwendungsfall haben wir im Grunde eine Vorlage, die von vielen Jobs verwendet wird. Jeder Job muss aus Gründen in einer eigenen Datei existieren, die hier nicht enthalten sind.
Bisher habe ich bekommen dies funktioniert:
Job-template.yml
name: 'pre-build-{proj}-{repo}'
project-type: freestyle
... etc ...
Job-1.yml
- job-template:
!include job-template.yml
- project:
name: job-1
proj: my-proj
repo: my-repo
jobs:
- 'build-config-{proj}-{repo}'
Diese scheinen falsch, weil die Vorlagendefinition erhalten wird Auf beide Dateien verteilt und erfordert unnötige Duplizierung der Zeile -job-template:
in jeder Jobdatei. Ich möchte folgende erhalten, anstatt zu arbeiten:
Job-template.yml
- job-template:
name: 'pre-build-{proj}-{repo}'
project-type: freestyle
... etc ...
Job-1.yml
!include job-template.yml
- project:
name: job-1
proj: my-proj
repo: my-repo
jobs:
- 'build-config-{proj}-{repo}'
Letztere leider in einem yaml Ergebnisse Analysefehler auf der - project:
Zeile:
yaml.scanner.ScannerError: mapping values are not allowed here in "job-1.yml", line 3, column 10
Gibt es eine Möglichkeit, die gesamte Vorlagendefinition in die Vorlagendatei zu bekommen? Dies wird besonders ärgerlich, wenn wir mehrere Vorlagen aus mehreren Dateien abrufen müssen.