Pagure Dist Git Interactions With Fedora CI
Fedora CI is a service that handles Continuous Integration of packages in Fedora project. As that it interacts with dist-git. Fedora CI consists of multiple services:
Jenkins - Fedora hosted instance that runs the tests
Greenwave - service to evaluate gating policies on test results
ResultsDB - stores results of the tests
WaiverDB - service for recording waivers against test results
The following are a set of documented interactions possible between Pagure Dist Git and Fedora CI.
To configure rawhide gating rules for Greenwave user needs to add
gating.yamlfile to package repository
Notification about results
Notification about CI results is done by creating flags using API calls:
Those flags are then visible on the corresponding commit or pull request.
Triggering tests on pull requests
The automatic trigger of CI when creating pull request is done by emitting message topic
pull-request.newand it’s consumed by Jenkins
In order to switch out Pagure Dist Git for an alternative that provides a relatively compatible API pattern, the following changes must be made in the places mentioned below.
If URL for dist git is change it will need to be reflected in each component that is part of Fedora CI and directly interacts with dist-git:
Greenwave - HTTP get request to the repository to check the
In case message schema will change we would need to update the topics that are consumed by Fedora CI. The configuration for Jenkins is here.