Flock 2019 has ended
This is a draft schedule! Please create a personal schedule noting which sessions you will attend. We will use this information to create a final overall schedule.
Back To Schedule
Thursday, August 8 • 15:30 - 16:20
Pagure CI based on Zuul

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

The OpenStack Foundation is handling its CI with a powerful stack, based on community-developed tools: Zuul (job orchestration and code gating) and Nodepool (job resources lifecycle management).

This stack provides many interesting features for software development and CI:
  • Event-driven pipelines based on Code-Review or Pull-Request workflow: jobs can be triggered automatically when a PR is submitted, changed, approved, or when the repository is tagged.
  • CI-as-code: jobs are defined as YAML + Ansible playbooks, pipeline definitions as YAML files stored within the project's code repository
  • Support for jobs inheritance, jobs dependencies, jobs chaining (artifacts sharing)
  • Speculative testing of new jobs before merging: jobs will be run as they are submitted to make sure they behave as expected
  • Cross repositories dependencies: a jobs' workspace can include unmerged patches from other projects if specified
  • Parallel job run, only capped by resources available or predefined quotas
  • Automated jobs resources lifecycle management: resources like VMs or containers needed by a given job can be defined in-repository, spawned on demand at a job's start, and destroyed when the job is finished, or held for debugging
  • Well-defined, reproducible job environments to eliminate flakiness
  • Speculative testing before merging (gating): if several patches are about to land at the same time, they are tested on the repository's future state.
Until now, Zuul was only able to listen to Gerrit or Github events, A new driver [1] allows Zuul to interface with Pagure as well. Pagure, Zuul and Nodepool could therefore combine into a very efficient CI/CD stack.
During this session I want to explain:
  • What Zuul and Nodepool are: overview of their main concepts and features
  • How Zuul interfaces with Pagure thanks to the new driver
  • How Zuul can be set up to build RPMs and run validation jobs on Pull Request events on Pagure
  • How the Fedora Project's CI could benefit from using Zuul


Thursday August 8, 2019 15:30 - 16:20 CEST
Mercure (140m² / 40 people)