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

Note: This needs to be updated!

  • Make Zuul aware of your repository in this repo
  • Create a file .zuul.yaml
    • Here is an example
    • 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
      • here are some default jobs
  • 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.