Add CI section to developer guide

Signed-off-by: Michal Konečný <mkonecny@redhat.com>
This commit is contained in:
Michal Konečný 2022-04-21 16:04:33 +02:00 committed by zlopez
parent 9591b13826
commit 3f7bb8b38c
2 changed files with 50 additions and 0 deletions

View file

@ -6,6 +6,7 @@
** xref:frameworks.adoc[Frameworks and Tools]
** xref:db.adoc[Databases]
** xref:writing-tests.adoc[Tests]
** xref:ci.adoc[CI]
** xref:auth.adoc[Authentication]
** xref:messaging.adoc[Messaging]
** xref:sops.adoc[Developing Standard Operating Procedures]

View file

@ -0,0 +1,49 @@
== 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
....