.. _ci: 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 Possible Interactions --------------------- The following are a set of documented interactions possible between Pagure Dist Git and Fedora CI. Rawhide gating ~~~~~~~~~~~~~~ - To configure rawhide gating rules for Greenwave user needs to add ``gating.yaml`` file to package repository Notification about results ~~~~~~~~~~~~~~~~~~~~~~~~~~ - Notification about CI results is done by creating flags using API calls: - ``/api/0//pull-request//flag`` - ``/api/0//c//flag`` 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.new`` and it's consumed by Jenkins Changes proposed ---------------- 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. Necessary ~~~~~~~~~ - 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 ``gating.yaml`` Unnecessary ~~~~~~~~~~~ - 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.