50 lines
1.8 KiB
Text
50 lines
1.8 KiB
Text
|
== CI (Continuous Integration)
|
||
|
|
||
|
CI is an important part of development and it helps to keep the project maintainable.
|
||
|
Fedora infra is using https://fedora.softwarefactory-project.io/zuul/status[Fedora CI].
|
||
|
This CI is hosted by Fedora and open to any Fedora project.
|
||
|
|
||
|
Fedora Infra also maintains their own https://pagure.io/fedora-infra/zuul[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 https://fedoraproject.org/wiki/Zuul-based-ci#How_to_attach_a_Pagure_repository_on_Zuul[official
|
||
|
guide] for new repositories that want to be added
|
||
|
https://fedora.softwarefactory-project.io/zuul/status[Fedora CI].
|
||
|
|
||
|
==== Github
|
||
|
|
||
|
https://github.com/fedora-infra[Fedora Infra organization] on Github already has the corresponding
|
||
|
application installed. To have it enabled for the project you need to
|
||
|
https://fedoraproject.org/wiki/Zuul-based-ci#Add_the_repository_into_the_Zuul_configuration[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
|
||
|
....
|