(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== | == Continuous Integration workflow for packagers == | ||
=== Some definitions === | === Some definitions === | ||
Line 10: | Line 9: | ||
=== Goal === | === Goal === | ||
This is an initiative to improve the | This is an initiative to improve the quality of Fedora Atomic Host packages by using Continuous Integration. Currently, Atomic Host is automatically tested during delivery, before we "bless" it for users. Continuous integration will bring testing to the front of the process, giving packagers of packages in Atomic Host feedback and gating for each change to those packages. | ||
The testing during continuous integration will provide better quality, and it will enable Atomic Host developers to work on features in Fedora directly rather than pulling changes in at the last minute. | |||
=== Scope and Requirements === | === Scope and Requirements === | ||
Line 18: | Line 17: | ||
* We assemble an Atomic Host image and do integration testing on the packages that are contained in that image. | * We assemble an Atomic Host image and do integration testing on the packages that are contained in that image. | ||
* The tests are run for each | * The tests are run for each change of a package that is included in Fedora Atomic Host. | ||
* The tests are stored with or curated in dist-git. | * The tests are stored with or curated in dist-git. | ||
Line 24: | Line 23: | ||
* Packagers can change the tests for a given package by pushing a change to dist-git. | * Packagers can change the tests for a given package by pushing a change to dist-git. | ||
* The | * The set of packages we're interested in are those in Atomic Host. | ||
* Packagers get quick feedback on whether a change to a package fails. | * Packagers get quick feedback on whether a change to a package fails. | ||
* Packagers must be able to opt into CI testing and gating on the tests. | * Packagers must be able to opt into CI testing and gating on the tests. | ||
=== Deliverables === | === Deliverables === | ||
The primary deliverable will be a functioning set of tools allowing package maintainers to opt-in into | The primary deliverable will be a functioning set of tools allowing package maintainers to opt-in into testing and gating of package changes. | ||
Related deliverables include: | |||
* Having pagure as a front-end to dist-git | |||
* Having a system where packager can contribute and configure tests for their package of interest | |||
* Having automated testing done for each and every pull-requests | |||
* Having automated merge of each pull-request where the set of mandatory tests passed | |||
== Contacts == | |||
* [[user:pingou|Pierre-Yves Chibon]] | * [[user:pingou|Pierre-Yves Chibon]] | ||
* [[User:Stefw| Stef Walter]] | * [[User:Stefw| Stef Walter]] | ||
[[Category:FedoraAtomicCi]] |
Latest revision as of 10:32, 28 April 2017
Continuous Integration workflow for packagers
Some definitions
- Continuous Integration:
- Integration: Assemble it together like in production, then test drive it like a user. This is Integration.
- Continuous: Do those integration tests for every single "change". This is Continuous.
Goal
This is an initiative to improve the quality of Fedora Atomic Host packages by using Continuous Integration. Currently, Atomic Host is automatically tested during delivery, before we "bless" it for users. Continuous integration will bring testing to the front of the process, giving packagers of packages in Atomic Host feedback and gating for each change to those packages.
The testing during continuous integration will provide better quality, and it will enable Atomic Host developers to work on features in Fedora directly rather than pulling changes in at the last minute.
Scope and Requirements
- We assemble an Atomic Host image and do integration testing on the packages that are contained in that image.
- The tests are run for each change of a package that is included in Fedora Atomic Host.
- The tests are stored with or curated in dist-git.
- Packagers can change the tests for a given package by pushing a change to dist-git.
- The set of packages we're interested in are those in Atomic Host.
- Packagers get quick feedback on whether a change to a package fails.
- Packagers must be able to opt into CI testing and gating on the tests.
Deliverables
The primary deliverable will be a functioning set of tools allowing package maintainers to opt-in into testing and gating of package changes.
Related deliverables include:
- Having pagure as a front-end to dist-git
- Having a system where packager can contribute and configure tests for their package of interest
- Having automated testing done for each and every pull-requests
- Having automated merge of each pull-request where the set of mandatory tests passed