Keysmith should have *real* CI (t/m)
Currently our CI set up only runs after the fact when changes get pushed to master
, which is too late.
Furthermore the CI only does a flatpak build, with testing explicitly disabled (-DENABLE_TESTING=OFF
), so its usefulness for catching issues early is even more diminished.
I propose we should work towards having a proper CI setup, which should eventually encompass:
- Preserving our ability to generate flatpaks.
- Flatpaks should also be (re)built on tags
- Building and testing against OS packages of our dependencies. I propose we start with Debian unstable (
image: debian:sid-slim
).- Running by default, or at least for each MR (for each push before merging) as well as after merge as well as for each push to master and tags
- Collecting test results/reports (xUnit XML?) and making them available as artifacts. Maybe Gitlab can display test results in a nice way if we give it xUnit XML...
- Possibly collecting code coverage metrics while we're at it.
- Building and testing against 'latest' upstream versions of our dependencies, similar in terms of scope/coverage as the "OS packages" scenario, but the implementation would be quite different.
- Maybe defer this until we are "officially" KDE software because CI tooling for KDE software makes this easy for fully paid-up KDE software but does not work out of the box for software that is not "blessed" as being officially KDE yet.