How OpenStack Improves Code Quality with Project Gating and Zuul
|Project:||OpenStack / Zuul|
The OpenStack project uses project gating to ensure that the latest
code in the repository always works. Gating is a process where every
change, after passing code review, is automatically tested and merged
only if it passes the test suite. Especially for large projects with
complex test suites, this process can keep code quality high while
making it easier to accept patches from new contributors.
The OpenStack CI team developed Zuul to manage its project gating
system. Zuul is a flexible, general purpose system to integrate
Gerrit code review and Jenkins and can be used for project automation
purposes beyond trunk gating. Driven by a simple, readable YAML file,
Zuul has a set of basic concepts that can be combined to make very
powerful automation pipelines. Zuul can perform speculative execution
of tests on multiple dependent changes in parallel to keep merges
happening quickly for gated projects.
This presentation will review how OpenStack uses project gating as
well as the capabilities of Zuul and how to set up a similar system
for any project.
James works for the OpenStack Foundation and is a core member of the
OpenStack project infrastructure team. As a sysadmin and hacker he gets to write elegant code and then try to make it work in the real world. He has been active in free software for quite some time, and has previously worked for UC Berkeley and the Free Software Foundation.