releng / tag2distrepo

Created 4 years ago
Maintained by puiterwijk
Fedmsg Consumer to automatically regenerate distrepos on tag operations
Members 2
Ken Dreyer committed 11 months ago

tag2distrepo

Koji plugin to automatically regenerate distrepos on tag operations

It uses the following options on a tag to control behaviour:

  • tag2distrepo.enabled: set to "true" to enable automatic distrepos
  • tag2distrepo.keys: set to a space-separated list of keys to use for distrepos

The tag must have at least one arch configured on it.

Installing plugin on Koji Hub

  1. Copy tag2distrepo.py to /usr/lib/koji-hub-plugins

  2. Edit the following settings in /etc/koji-hub/hub.conf to enable the plugin:

     PluginPath = /usr/lib/koji-hub-plugins
     Plugins = tag2distrepo
    
  3. Reload Apache

     systemctl reload httpd
    

Example usage

Here is an example of enabling the plugin on an "f33-infra" tag. Create the tag and ensure it has at least one arch and a package list (direct or inherited) so we can tag packages into it.

koji add-tag f33-infra --arches=x86_64
koji add-pkg --owner kdreyer f33-infra bash

Set the extra options on the tag so the plugin will generate the repository:

koji edit-tag -x tag2distrepo.enabled=True -x tag2distrepo.keys=47dd8ef9 f33-infra

Tag a new build to trigger the plugin:

koji tag f33-infra bash-5.0.17-2.fc33

The hub will immediately queue a new distRepo task, using the tagBuild task host as the distRepo task owner. When the distRepo task completes, you can find the new repository under the topurl for your Koji instance.

To confirm that the tag has the correct options set, use the koji taginfo command:

koji taginfo f33-infra
Tag: f33-infra [18680]
Arches: x86_64
Tag options:
  tag2distrepo.enabled : 'true'
  tag2distrepo.keys : '47dd8ef9'

To disable the plugin for the same tag:

koji edit-tag -r tag2distrepo.enabled -r tag2distrepo.keys f33-infra