CI (Continuous Integration)

CI is an important part of development and it helps to keep the project maintainable. Fedora infra is using Fedora CI. This CI is hosted by Fedora and open to any Fedora project.

Fedora Infra also maintains their own zuul jobs repository. This repository is open to contributions and every project in Fedora can use these jobs.

Setting up CI for new project

Pagure

There is an official guide for new repositories that want to be added Fedora CI.

Github

Fedora Infra organization on Github already has the corresponding application installed. To have it enabled for the project you need to add the repository to Zuul configuration and create a .zuul.yaml file Following is the basic zuul.yaml file that could be used:

---
# The root of the configuration is project
- project:
    check:
      # Jobs to run on the project
      # This example runs various tox environments
      # More info about these jobs can be found on
      # https://fedora.softwarefactory-project.io/zuul/jobs
      jobs:
        - fi-tox-mypy
        - fi-tox-lint
        - fi-tox-format
        - fi-tox-python38
        - fi-tox-python39
        - fi-tox-python310
        - fi-tox-docs:
            vars:
              dependencies:
                - graphviz
                - python3-sphinxcontrib-httpdomain
                - python3-sqlalchemy_schemadisplay
        - fi-tox-bandit
        - fi-tox-diff-cover