This ticket got me thinking about integration testing recently:
https://pagure.io/koji/issue/2990
There were only two ways to catch that bug:
A) A human notices that the CLI uses new APIs without handling
GenericError/ParameterError
B) An automated test reports a failure
It's great if we can catch everything during a review, but deep
integration testing scales better. We also want to make it easier for
new contributors to add features, and automated tests would guide
those type of code changes more easily.
I've run Koji instances inside Travis CI and GitHub Actions for years
for the koji-ansible project. It's so critical to do live testing
against a real (throwaway) Koji instance. For example, this caught a
small API change recently:
https://github.com/ktdreyer/koji-ansible/issues/224
On distributed systems like Koji, it's important to bring up big
environments with many different permutations, test upgrades, etc.
I understand there is some CI for Koji with CentOS Jenkins right now,
but that infra does not get a lot of maintenance, and there are some
hard-to-debug failures.
Here are the reasons I suggest moving to GitHub instead:
GitHub is very fast
Many people have accounts already, so it's trivial for new contributors
It's very easy to run CI resources on pull requests
- Ken