Package: kernelci
Welcome to KernelCIThe 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 onkernelci.org.There is also a separate instance used for KernelCI development available onstaging.kernelci.org, seeDevelopment
workflowfor 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 thewiki.User guideKernelCI 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:Using LAVA with KernelCICommand line toolsAll the steps of the KernelCI pipeline are implemented with portable command
line tools.  They are used inJenkins pipeline
jobsfor
kernelci.org, but can also be run by hand in a shell or integrated with any CI
environment.  Thekernelci/build-baseDocker image comes with all the
dependencies needed.The available command line tools are:kci_buildto get the kernel source code, create a
config file, build kernels and push them to a storage server.kci_testto generate and submit test definitions in
an automated test lab.kci_rootfsto build a CPU specific rootfs image
for given OS variant and push them to a storage server.Other command line tools are being worked onto 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 filesAll the builds are configured inbuild-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 intest-configs.yamlwith 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 forbuild
configurationsandtest
configurations.Python package on PyPIThekernelcipackage on PyPIcontains
all the modules from thekernelcidirectory as well as thekci_*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.DockerfilesEach step of the KernelCI Pipeline can be run in a Docker container.  Onkernelci.org, this is done in Jenkins jobs.  The Docker
images used by these containers are built fromjenkins/dockerfilesand pushed
to thekernelci Docker repositories.Test templatesThe majority ofkernelci.orgtests get run inLAVA, although this is not a requirement.  Each
LAVA test is generated using template files which can be found in thetemplatesdirectory.