Skip to main content

Zuul

Zuul CI/CD pipelines and project gating​

Since we are expecting a lot of pipelines being 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 contains 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.