Candlepin Release Pipeline and Release Process Changes

We now have a pipeline for updates to Candlepin [1]. The Candlepin SRPM can now be fed into Copr [2] where it will get built and then through our CI pipeline will get turned into a staging repository [3], tested against our puppet-candlepin acceptance tests [4] and if passing pushed out to the new production location [5].

The intent is also to “branch” the nightly builds into a release target, e.g. 4.3 [6], that Katello releases can be released against for stability. Here is a proposal for how that would work and affect the release process:

  1. At branch time, a new branch of candlepin-packaging will get created for the target Candlepin version (e.g. rpm/4.4).
  2. The current Candlepin build in nightly would get forked into a corresponding Copr repository
  3. Pipelines in Jenkins and Forklift would get updated accordingly with this Candlepin version
  4. Run the Candlepin pipeline for the target version at least once

Updates to Candlepin for a released Katello

  1. If Candlepin nightly is still on the same version (e.g. 4.4) nightly will get updated and then cherry-picked into rpm/4.4 to land for the Katello release
  2. If Candlepin nightly is ahead, then the version will get built only against the target release

This does raise a fair question of does ‘nightly’ in this context provide value compared to using only versioned release streams of Candlepin. On this, I am looking for feedback.

[1] candlepin-nightly-rpm-pipeline [Jenkins]
[2] @theforeman/candlepin-nightly-staging Copr
[3] Index of /candlepin/nightly
[4] https://github.com/theforeman/puppet-candlepin/tree/master/spec/acceptance
[5] Index of /candlepin/nightly
[6] @theforeman/candlepin-4.3-staging Copr

2 Likes