From Fedora Project Wiki

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.


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.


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