#129 [Talk-50] Pagure CI based on Zuul
Closed: Resolved 21 hours ago by riecatnor. Opened 11 months ago by fbo.

  1. What is your proposal?

The OpenStack Foundation is handling its CI with a powerful stack, based on community-developped 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.

Resources:

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
  1. Who in addition to the speaker needs to be in the room for this to succeed? This could be the audience you need to reach, other participants in the conversation, or other stakeholders.

List each person by their name and FAS ID, as shown below:

  • RPM Packagers
  • People in charge of Fedora's CI pipelines
  • People interested in software development and CI/CD in general
  1. Is this a 50 minutes: Talk

  2. Anything else we need to know?

I can only attend FLOCK the 8 and the 9 of August, not the full event.

  1. Who are you?
  • Name: Fabien Boucher
  • FAS ID: fbo

Metadata Update from @mattdm:
- Issue assigned to mattdm

9 months ago

Metadata Update from @mattdm:
- Issue marked as blocking: #223
- Issue tagged with: Talk Accepted

9 months ago

scheduling note: see above. needs to be on the 8th or 9th.

Metadata Update from @riecatnor:
- Issue close_status updated to: Resolved
- Issue status updated to: Closed (was: Open)

21 hours ago

Login to comment on this ticket.

Metadata