Skip to main content

Zuul

Zuul CI/CD pipelines and project gating

Since we are expecting a lot of pipelines beeing created and used GitHub actions won't keep up well. We also expect cross-repository and even cross-project dependencies. Therefore we decided to use Zuul as our main pipeline solution.

How to make a repo use Zuul

  • Make Zuul aware of your repository in this repo
  • Create a file .zuul.yaml
    • An example can be found here
    • You can have a job section containing self-defined jobs which you need to write on your own
    • You have to have a project section containing
      • the default-branch name
      • the merge-mode which should be used to auto-merge
      • the jobs to run in each pipeline (gh_check, gh_gate, gh_post, gh_tag)
      • these pipelines are triggered by events which can be looked up here
      • some default jobs can be found here
  • If you have self-defined jobs, you need to create a folder .playbooks
    • this folder containers ansible playbooks which will be triggered

General information about Zuul

Zuul does not take anything for granted. If you need to have something installed, you should install it via ansible. Our test-machines are basically pimped docker-containers, so we might run into issues some time. But for now, things work pretty good.