#125 Add CI doc for dist-git ARC investigation
Merged 2 years ago by zlopez. Opened 2 years ago by zlopez.
fedora-infra/ zlopez/arc dist_git_ci  into  main

@@ -0,0 +1,69 @@ 

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

@@ -43,6 +43,7 @@ 

  .. toctree::

      :maxdepth: 1

  

+     ci

      copr

      hotness

      notifications

This document describes the interactions between dist git and Fedora CI.

Signed-off-by: Michal Konecny mkonecny@redhat.com

rebased onto 971c567

2 years ago

Pull-Request has been merged by zlopez

2 years ago