Continuous Integration, Delivery, and Deployment system¶
Zuul is the service in charge of running tests and managing projects’s pipeline such as gate and post deployment:
- Jobs are written in ansible and stored in repository
- Secrets management system to manage deployment/publishing key
- Simple multi-node jobs description
The service is pre-configured with five pipelines:
- A check pipeline, used for preliminary tests on upcoming changes
- A gate pipeline, used to make sure an approved change can be merged
- A post pipeline, executing jobs right after a change has been merged
- A pre-release pipeline, executing jobs after a tag including ‘alpha|beta|rc’ has been pushed on a repository
- A release pipeline, executing jobs after a tag has been pushed on a repository
- A periodic pipeline, building jobs at a regular interval, usually daily
When deployed locally, the service is configured with a few roles:
- prepare-workspace: copy project with under review change
- emit-ara-report: generate html logs of ansible play
- validate-host: verify and log information about build host
- upload-logs: upload job logs to a static webserver