diff --git a/modules/developer_guide/nav.adoc b/modules/developer_guide/nav.adoc index 4c0b5d8..fe7a431 100644 --- a/modules/developer_guide/nav.adoc +++ b/modules/developer_guide/nav.adoc @@ -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] diff --git a/modules/developer_guide/pages/ci.adoc b/modules/developer_guide/pages/ci.adoc new file mode 100644 index 0000000..22a1f90 --- /dev/null +++ b/modules/developer_guide/pages/ci.adoc @@ -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 +....