VANCOUVER, British Columbia — The OpenStack Foundation made Zuul, an open source continuous integration/continuous development (CI/CD) platform, into an independent project. Zuul also released version 3 of its software.

Zuul was originally developed for OpenStack CI testing and has since attracted contributors and users across many different organizations, including BMW, GoDaddy, OpenLab, and Wikimedia. It's the third project to be managed by the OpenStack Foundation, joining OpenStack and Kata Containers.

As more users and use cases emerged, the team has been decoupling Zuul from OpenStack-specific systems. And it wanted to make the software available to a wide audience.

James Blair, a principal software engineer with Red Hat and a founding member of the Zuul project team, said the software has been around for a while. It makes sure that patches to OpenStack are tested before they land. “Zuul is the engine that drives that,” said Blair. “Every change to a piece of software should be a commit and should be tested before it lands.”

Zuul version 3 jobs are written in Ansible, said Blair, because Ansible can deploy software anywhere: on containers, bare metal, network switches. “The idea with Zuul is that you can write an Ansible playbook and use that same playbook in development,” he said. “Developers can create ad hoc CI tests with the ability to perform cross community CI testing whether the developers are in another office, company, or country. Zuul version 3 stands on its own as a project.”

Melvin Hillsman, an open source community operations manager at Huawei, said in a statement, “Primarily, the benefit we see is the ease of integration with other projects. Zuul is beneficial in general for open source users who utilize Ansible for other problem domains because it allows for a common language/workflow to be utilized both within the CI/CD system and outside it.”

At an OpenDev event co-located this week with the OpenStack Summit, Blair stressed that Zuul is focused on project gating. The software looks at a proposed change and dependencies of that change and says with certainty that when those changes land, they won’t break other things. “In OpenStack, projects are highly dependent on each other,” he said. “With Zuul, it pulls all the projects together and tests changes against each other. We can avoid projects breaking each other.”