68 lines
2.3 KiB
ReStructuredText
68 lines
2.3 KiB
ReStructuredText
.. _ci:
|
|
|
|
Pagure Dist Git Interactions With Fedora CI
|
|
===========================================
|
|
|
|
`Fedora CI <https://docs.fedoraproject.org/en-US/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 <https://pagure.io/greenwave>`__ - service to evaluate gating policies on
|
|
test results
|
|
- `ResultsDB <https://pagure.io/taskotron/resultsdb>`_ - stores results of the tests
|
|
- `WaiverDB <https://pagure.io/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/<package_name>/pull-request/<pr_id>/flag``
|
|
- ``/api/0/<package_name>/c/<commit_id>/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
|
|
<https://pagure.io/fedora-infra/ansible/blob/main/f/roles/openshift-apps/greenwave/templates/settings.py>`__
|
|
- 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
|
|
<https://github.com/fedora-ci/dist-git-build-trigger/blob/pull-request.new/Jenkinsfile>`_
|
|
for Jenkins is here.
|