49 lines
1.8 KiB
Text
49 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
|
|
....
|