.. _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.