There are 2 points in the process where packages can be promoted for wider consumption. Testing content can be distributed to the content delivery network for developers and CI systems to consume. Release-ready content can be promoted to a SIG-specific directory on for consumption by end-users.

As a first step, decide on the final release location of the repo on You can use the same path for

Pushing Test Content to Buildlogs

Important Note: The CentOS admins require at least one build to be tagged into -testing tag in order to fully configure, because the internal "sync" script does not publish empty repositories for sanity+safety reasons. If your -testing tag does not contain any builds, please tag at least one build into -testing before opening the configuration ticket.

  1. Please create a Pull Request at

  2. You will need the following information:
    • SIG Name
    • CBS Release Tag(s) to combine into the testing repo
    • Final directory location on
    • The expected format is the following :
          <tag>|<destination path>|<dir to run createrepo in>|<destination on buildlogs>
  3. An exemple follows. You can check additional examples in the commits history.


Once setup, the CBS tag will be checked every 2 hours for new content, and when available, will be pushed to to the destination repository setup. This requires no manual intervention, beyond you tagging the right rpms to the -testing repositories.

Please also note that you do not need to declare all architectures for buildlogs sync, it will sync them by default if there is an entry for x86_64.

Note that this configuration is completely independent of the configuration. This particular configuration tells the server to host content tagged as "-testing". You must request a second mapping configuration for for the content you tag as "-release".

Releasing content to

Steps to request space on the mirror network

  1. Please create a Pull Request at

  2. You will need the following information:
    • SIG Name
    • CBS Release Tag(s) to combine into the final repo
    • Final directory location on
    • The expected format is the following :
          <tag>|<destination path>|<dir to run createrepo in>|<destination on>
  3. An exemple follows. You can check additional examples in the commits history.


Worth noting that for CentOS 7, x86_64 will be pushed to$path while other arches like ppc64le/ppc64/aarch64 will be pushed to$path. The $contentdir yum variable can be used in your .repo files to select the branch (centos or altarch).

Also worth noting that sign+push to happens only once a day, from Monday to Thursday, at 9AM UTC (altarch push being itself processed after that)

If you need help please open a bug on in the 'Community Build Service' component of the 'Buildsys' project.

centos-release Packages

To deliver SIG packages to users, the yum repo files must be available in a package named centos-release-<component>. This centos-release-<component> package will be published in the CentOS Extras repository. That .repo file should also contain the gpg public key that permits signing validation of the downloaded artifacts from mirror nodes.

For example the cloud sig releases OpenStack Rocky using the repo definitions in centos-release-openstack-rocky.

Building a centos-release-* package
  1. If you are a new SIG and don't have an assiged SIG gpg key (also with public key listed on , you should file a bug report on : Project: Buildsys Category: community buildsys.

Once you have received your gpg pub key, you can start composing your centos-release--* sig pkg.

  1. Set up your content sources in the .repo file. For example, centos-release-openstack-rocky could have this definition for the main repository:
    name=CentOS-7 - OpenStack rocky
    There can also be other repositories defined in the .repo file, for example for testing, debuginfo and sources. See the other centos-release-* packages for examples. The above example uses for selecting the closest external mirror. Using mirrors obtained via is preferred, because it gives the user the fastest possible mirrors and decreases load from servers. The baseurl to CentOS-controlled is still available as a commented out backup. Note the use of $contentdir to select either centos or altarch.

    The repo parameter to is constructed from the path by dropping the architecture and changing slashes to dashes. For example, files in cloud/x86_64/openstack-rocky can be found from a repository named cloud-openstack-rocky, and files in sclo/x86_64/rh/rh-python36 can be found from sclo-rh-rh-python36. Please make sure you get the path and repo names right in your .repo file. Content on is scanned every three hours, and any new repositories will be added automatically to the mirror crawler database.

  2. If this is the first build, add the new centos-release-mycomponent to the Extras tags
    [bstinson@localhost centos-release-mycomponent]$ cbs add-pkg --owner=bstinson core7-extras-common-candidate centos-release-mycomponent
    [bstinson@localhost centos-release-mycomponent]$ cbs add-pkg --owner=bstinson core7-extras-common-testing centos-release-mycomponent
    [bstinson@localhost centos-release-mycomponent]$ cbs add-pkg --owner=bstinson core7-extras-common-release centos-release-mycomponent
  3. Build the package in CBS against the Extras tag
    [bstinson@localhost centos-release-openstack-mycomponent]$ cbs build core7-extras-common-el7.centos centos-release-mycomponent-0.0.1-1.rpm
  4. File a bug to request content to be synced to (See SIGGuide#MirrorSpace)

  5. Tag the build to the testing tag
    [bstinson@localhost centos-release-openstack-mycomponent]$ cbs tag-build core7-extras-common-testing centos-release-mycomponent-0.0.1-1
  6. Do a test yum install of a package from the new repo

  7. When ready, tag the build to the release tag
    [bstinson@localhost centos-release-openstack-rocky]$ cbs tag-build core7-extras-common-release centos-release-mycomponent-0.0.1-1

Some Guidelines for centos-release-* packages
  • centos-release-* packages should be built as noarch RPMs

SIGGuide/Content/Release (last edited 2018-09-24 18:41:28 by AnssiJohansson)