Adding a new Job¶
Are you familiar with Zuul?¶
Before start trying to figure out how Zuul works, take some time and read about Zuul Config and the Zuul Best Practices.
Where can I find the existing jobs?¶
The jobs for the Ironic project are defined under the zuul.d folder in the root directory, that contains three files, whose function is described below.
ironic-jobs.yaml: Contains the configuration of each Ironic Job converted to Zuul v3.
legacy-ironic-jobs.yaml: Contains the configuration of each Ironic Job that haven’t been converted to Zuul v3 yet.
project.yaml: Contains the jobs that will run during check and gate phase.
Create a new Job¶
Identify among the existing jobs the one that most closely resembles the
scenario you want to test, the existing job will be used as parent
in your
job definition.
Now you will only need to either overwrite or add variables to your job
definition under the vars
section to represent the desired scenario.
The code block below shows the minimal structure of a new job definition that you need to add to ironic-jobs.yaml.
- job:
name: <name of the new job>
description: <what your job does>
parent: <Job that already exists>
vars:
<var1>: <new value>
After having the definition of your new job you just need to add the job name
to the project.yaml under check
and gate
. Only jobs that are voting
should be in the gate
section.
- project:
check:
jobs:
- <name of the new job>
gate:
queue: ironic
jobs:
- <name of the new job>