The first thing worth noting here is that there are two main parts of the overall KernelCI architecture:
- API & Pipeline
- which orchestrates the native tests initiated by KernelCI via services that communicate directly with the API,
- which groups results sent from other CI systems into a common reporting database.
API & Pipeline
The top half of this picture shows native services interacting directly with the API: LAVA test labs, Kubernetes clusters, custom test environments and the job scheduler. These are referred to as the KernelCI Pipeline in a loose sense. Such services can be run pretty much anywhere, they are just API clients with a particular purpose.
Other fully autonomous systems producing their own kernel builds and running their own tests can submit results to KCIDB, which is a BigQuery database to provide a unified kernel test reporting mechanism. Please take a look at this blog post for a comprehensive description: Introducing Common Reporting.
Here’s the list of systems currently submitting data:
The KCIDB engagement reports provide more details about the latest status.