A program to interact with Koji server(s) to build RPM packages.
The aim of this project is to fetch package and tag info from upstream Koji instances such as from Fedora's instance and build those packages in a downstream koji instance, while keeping your patched compilers and/or custom RPM packages.
You can deploy your own Koji infrastructure following this guide.
Alternatively you may use the shell scripts here.
python3.11+
poetry
git clone https://github.com/arif-desu/koji-build-automation
It is recommended that this package is used in a virtual environment.
poetry shell
poetry install
koji-rebuild CONFIGFILE
The CONFIGFILE
is a YAML formatted file. See config.yaml for reference.
This is a simplified flowchart:
Building and waiting on packages is heavily IO-bounded operation. Thus we employ asynchronous programming patterns to a big extent, utilizing generator objects and Python's asyncio library.