Move Jenkins job definitions to a separate repository

I am working on the foreman-infra cleanup story that revolves around moving our Jenkins job definitions out of the puppet module and to a more obvious place and such that Jenkins itself can manage updates to jobs. The original proposal was to move this to jenkins-jobs/ directory at the top of the foreman-infra directory. This keeps everything together, however, it does conflate concepts with having CI jobs and underlying infrastructure management together.

Proposal

Move Jenkins job definitions, those currently at puppet/modules/jenkins_job_builder/files, to a brand new repository either:

  1. foreman-jenkins-jobs or jenkins-jobs
  2. foreman-ci
  3. foreman-ci-cd
1 Like

:+1: for the move to a separate repo but naming is still one of the hardest problems.

This has the benefit of making it clear that it’s job definitions. I assume that within this we would still have 2 directories (theforeman.org and centos.org) as we have today.

While this sounds attractive, it can open up the discussion if we should include Github Actions here as well. IMHO those have separate “release” cycles and separating projects is why we want to extract it out of foreman-infra.

Similar concerns as foreman-ci.

Aye, two directories. I’ll go with jenkins-jobs as prefixing things with foreman has the challenge of making it sound like its a plugin.

1 Like

I created a repo:

I used git filter-branch to extract the directory and maintain history.

This now needs a README and the CI should be copied over.

This work has been completed. All jobs now exist at jenkins-jobs and are automatically updated when updates are merged to the repository. All jobs have been removed from foreman-infra.