Option to group multiple jobs together in job trees
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Zuul |
Triaged
|
Wishlist
|
Unassigned |
Bug Description
Currently a single job can be used determine whether a group of jobs should subsequently run if that job succeeds. It would be nice to be able to group multiple jobs together and only run the next group if all of the jobs succeed. For example:
gate:
- stage1:
- pep8
- requirements
- stage2:
- python26
- python27
- devstack
Would only run python26,27, and devstack if both pep8 AND requirements succeed. More complicated logic can also be supported:
publish:
- stage1:
- tarball
- stage2:
- pypi-upload
- stage2b:
- something-else
- stage3:
- something-further
Means:
run tarball
if tarball succeeds:
run pypi-upload and something-else
if something-else succeeds:
run something-further
This changes the current semantics of dictionary keys in the job tree from referring to a job to referring to a job group. It is therefore incompatible with the current syntax. For backwards compatability, we should add a flag to the config file that
indicates the new format should be used; default it to false, then remove it in a later version.
Changed in zuul: | |
status: | New → Triaged |
importance: | Undecided → Wishlist |
I love that idea and have a perfect use case for it. A first stage to run linting / fast tests, a second stage to run the unit & integration tests :-] That would save a bit of time!