Zuul CI
Outdated, see https://github.com/packit-service/packit-service-zuul
Zuul is a CI system invented in OpenStack community. Softwarefactory (SF) is project which is hosting a bunch of services to ease development of open source projects. Zuul is one of the services.
Zuul is a heavy Ansible user.
On-boarding
In-order to get on-board SF, you need to do these things:
- Let Zuul know about your repo: https://softwarefactory-project.io/r/15927 
- Install SF GitHub app: softwarefactory-project-zuul 
- Create .zuul.yaml and define noop job inside to test the connection: https://github.com/packit-service/ogr/pull/120/commits/23046836e2774a1c5de6620d93d9a88b21a98751 
Assorted notes & Gotchas
- Zuul accepts a config file named .zuul.yaml: it can be in the root of your repo (or somewhere else, which is pretty confusing). 
- Results: once the testing is done, there is a new comment posted in the PR with links to each job: https://github.com/packit-service/ogr/pull/120#issuecomment-511790688 - ARA report contains GUI for the playbook run: https://softwarefactory-project.io/logs/20/120/2e2b6a2c173b8be04c33c94fd75fa2d1febbecba/check/tests/e9adb06/
- There is also a zuul-info/ directory with Ansible vars and generated inventory file (which contains Zuul Ansible vars)
 
- Zuul is a fairly complex system and can feel intimidating for a beginner (I'm still scared). The core building block of Zuul is a job: 
- This is where your locally cloned repo is: - project_dir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}"- Executor: A piece of Zuul's infra where Ansible is being invoked
- Node: a VM where our tests are running
 
- A list of available nodes which are available for testing: https://softwarefactory-project.io/zuul/t/local/labels 
- A repo with existing jobs, playbooks and roles which OpenStack is using: https://github.com/openstack-infra/zuul-jobs/blob/master/zuul.yaml 
- More useful links: - Existing SF jobs: https://softwarefactory-project.io/cgit/config/tree/zuul.d/_jobs-base.yaml#n58
- Our Zuul tenant: https://softwarefactory-project.io/zuul/t/local/status
- Zuul pipelines defined in SF: https://softwarefactory-project.io/cgit/config/tree/zuul.d/_pipelines.yaml
 
- You can join internal IRC channel #sf-ops for questions. Fabien is super-duper helpful. 
- Good luck and have fun!