|(40 intermediate revisions by 8 users not shown)|
'''Continuous integration''' aims to ensure broken changes do not affect other developers, packagers, maintainers or users. Continuous delivery aims to ensure broken changes do not get delivered or released.
= The Manifesto =
Because there are several Continuous Integration efforts, we need to set the basic rules to make sure we’re all playing the same game. When we call a game “football” we need to agree on what that means.
Here is a [[CI/Manifesto|Continuous Integration manifesto]] that helps describe the goals, terminology, and rules.
= Tests locations =
The tests to be executed are stored in the dist-git repositories]. The tests are stored or wrapped along-side the spec files that describe the software sources. The tests are branched, maintained along with the package or module they pertain to.
Package or RPM specific tests are stored in that package's [https://src.fedoraproject.org/cgit/rpms/|dist-git repository]. Such package repositories will have a <code>rpms/</code> prefix in their name. Other tests refer to larger sets of functionality, [[Modularity|called modules]] and are [https: //src.fedoraproject.org/cgit/modules/|stored in a dist-git repository] with <code>modules/</code> prefix in their name.
* To checkout a dist-git repo, use [[Package_maintenance_guide|fedpkg tooling]].
* To contribute tests to a dist-git repository get a [https:// admin.fedoraproject .org/accounts/ Fedora Account].
* Use Pagure.io to contribute to a dist-git repository using a GitHub style interface.
** '''Ready: July 10, 2017'''
** Contact: [[User:Pingou|Pierre Yves-Chibon]]
* To move or wrap downstream tests to Fedora, use https://upstreamfirst.fedorainfracloud.org/
** Contact: [[User:Tflink|Tim Flink]]
= Test format =
Tests may be written all sorts of different ways, but have to be exposed and invoked in a standard way. They are stored or wrapped in the <code>tests/</code> directory in a dist-git repository. There is a detailed description of how this is done:
* [[Changes/InvokingTests|Standard Spec for Invoking Tests]]
* Helpful [https://pagure.io/standard-test-roles standard-test-roles for wrapping or writing tests].
= Gating =
When a test fails, continuous integration will be able to prevent the broken package change from affecting other changes. That gating will happen in Bodhi. Packages in the core operating system, such as those in [https://getfedora.org/en /atomic/|Fedora Atomic Host] are most interesting for gating, as when they break they affect the most users.
* Modules and packages will be able to opt into gating.
* [[FedoraAtomicCI/gating|Proposals and options]]
* '''Ready: August 2017'''
= Testing pipeline =
The pipeline is under development
* Source Code: https://github.com/CentOS-PaaS-SIG/ci-pipeline
* Documentation: https://github.com/CentOS-PaaS-SIG/ci- pipeline/blob/master/README.md
* [[FedoraAtomicCI/pipeline|More pipeline description]]
* [[FedoraAtomicCI/KojiBuilds|Build options and ideas]]
* [[FedoraAtomicCI/ upstream|Possibilities for upstream open-source project integration]]
= Contact =
To get involved:
* <code>#fedora-ci </ code> on FreeNode
* Mailing list: firstname.lastname@example.org
* If you don't know where to go: [[User:Stefw|Stef Walter]]