What is KCI ?
Monday to Friday at midnight UTC, a scheduled job starts a merger process. This process detects upstream source code changes (SCM) in the KDE git repositories, and schedules new builds to take place. Each new build grabs a copy of the packaging from Launchpad and a copy of the source from KDE, then builds the source and uploads the source package it created to a Launchpad PPA, ( unstable or stable ). KCI then monitors the build and reports it as FIXED, SUCCESS, FAILURE, UNSTABLE etc. Any changes in the build are reported to IRC channels via the kubuntu-ci bot.
Why do we need this?
We need this in order to spread the packaging workload over time and allow multiple people to work. If the packaging team waits until the tarballs are released by KDE, it takes a huge amount of person power and time to work through the numerous packages. Harald Sitter explains the process very nicely in this Youtube video.
How does KCI work?
KCI uses a fork of the original "Pangea Tooling", which was created and is maintained by Blue Systems employees. The code is kept in a Launchpad git repository. For links to the code bases, see below:
- Original Tooling - https://github.com/blue-systems/pangea-tooling
- KCI Fork - https://git.launchpad.net/~kubuntu-ci-admins/kubuntu-ci/+git/pangea-tooling
How does it package?
KCI clones the packaging from the Kubuntu Packagers git repositories ( https://code.launchpad.net/~kubuntu-packagers/+git ) and the KDE source code git repositories ( https://cgit.kde.org )
It then "debuild -S" to build a source package, signs it with the kubuntu-ci key and uploads it to a PPA on Launchpad.
The build process is monitored and buildlog parsed to allow KCI to traffic-light the build (red, orange and green colours).
- Red means the build mostly likely FTBFS or had some other major problem which prevented the build from finishing
- Orange means the build mostly likely finished but there are warnings in the buildlog which should be fixed
- Green means the build finished and no errors messages or warnings were generated
KCI Technical Documentation