Skip to main content

Welcome to KernelCI

The KernelCI project is dedicated to testing the upstream Linux kernel. Its mission statement is defined as follows:

To ensure the quality, stability and long-term maintenance of the Linux kernel by maintaining an open ecosystem around test automation practices and principles.

The main instance of KernelCI is available on kernelci.org.

There is also a separate instance used for KernelCI development available on staging.kernelci.org, see Development workflow for all the details about it.

This repository provides core functions to monitor upstream Linux kernel branches, build many kernel variants, run tests, run bisections and schedule email reports.

It is also possible to set up an independent instance to build any arbitrary kernel and run any arbitrary tests.

You can find some more general information about the KernelCI project on the wiki.

User guide

KernelCI users will typically want to add their kernel branch to be monitored, connect their lab or send results from their own existing CI system. The pages below are a work-in-progress to cover all these topics:

Command line tools

All the steps of the KernelCI pipeline are implemented with portable command line tools. They are used in Jenkins pipeline jobs for kernelci.org, but can also be run by hand in a shell or integrated with any CI environment. The kernelci/build-base Docker image comes with all the dependencies needed.

The available command line tools are:

  • kci_build to get the kernel source code, create a config file, build kernels and push them to a storage server.

  • kci_test to generate and submit test definitions in an automated test lab.

  • kci_rootfs to build a CPU specific rootfs image for given OS variant and push them to a storage server.

Other command line tools are being worked on to replace the current legacy implementation which is still tied to Jenkins or hard-coded in shell scripts:

  • kci_data (WIP) to submit KernelCI data to a database and retrieve it.

  • kci_bisect (WIP) to run KernelCI automated bisections.

  • kci_email (WIP) to generate an email report with test results.

Configuration files

All the builds are configured in build-configs.yaml, with the list of branches to monitor and which kernel variants to build for each of them.

Then all the tests are configured in test-configs.yaml with the list of devices, test suites and which tests to run on which devices.

Details for the format of these files can be found on the wiki pages for build configurations and test configurations.

Python package on PyPI

The kernelci package on PyPI contains all the modules from the kernelci directory as well as the kci_* command line tools. This provides the core functions of KernelCI, to parse YAML configuration and perform each step of the pipeline such as building kernels, running tests and sending results to a database.

Dockerfiles

Each step of the KernelCI Pipeline can be run in a Docker container. On kernelci.org, this is done in Jenkins jobs. The Docker images used by these containers are built from jenkins/dockerfiles and pushed to the kernelci Docker repositories.

Test templates

The majority of kernelci.org tests get run in LAVA, although this is not a requirement. Each LAVA test is generated using template files which can be found in the templates directory.

Metadata

Release files for kernelci 1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kernelci 1.1
File Size Uploaded
kernelci-1.1.tar.gz 41.0 kB Details

Release files / kernelci-1.1.tar.gz

Download URL kernelci-1.1.tar.gz
Size 41.0 kB
Tags Source
SHA-256 checksum
How to use checksums
19168f49a056ad59096e82123e8770c639ac6a62bfe0a66c813fa39e00f83c6f
BLAKE2b-256 checksum
How to use checksums
f5a842e1a37ef25749ca3824d93df616bab116befb0bced37d7ff6a1b9b0b1c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.3

Release history Release notifications | RSS feed

This release

1.1 This release

1 release file

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page