The CI-RT tests changes of the PREEMPT_RT patch on different hardware platforms with a defined test procedure. For a detailed description please consider https://ci-rt.linutronix.de/RT-Test/about.jsp and CI-RT requirements and rules.
The CI-RT is split in several subprojects. They are shortly described in the following.
The control instance uses jenkins to deploy the jobs on the different defined slaves. The setup of the Jenkins master instance (and the setup of the slaves) is described in README of jenkins-cirt-libs.
- test-description
-
A textual description for the tests that needs to be executed. Additionally it contains the base Jenkinsfile which triggers only the CIRTscheduler, which is part of cirt Jenkins library.
For the explanation of the structure and the setup, please consider README. - jenkins-cirt-libs
-
The description for the single steps are defined in a Jenkins Pipeline shared library.
For setup, please consider README. - libvirt-slave-plugin
-
Jenkins Libvirt Agents plugin >= 1.9.0 enables the selection of r4d as hypervisor to communicate with slaves via libvirt.
- database
-
The repository hosts the database scheme for the test results of the Jenkins tests.
For setup, please consider README.
The DUTs (or Jenkins slaves) are located in racks. To communicate with real hardware in the same way you can communicate with virtual machines, r4d was developed. Libvirt was adapted to support r4d.
r4d, libr4d and the patched libvirt are available as Debian packages on http://debian.linutronix.de/tools mirror.
- r4d
-
For the communication abstraction for the targets located in racks, hypervisor r4d is used.
For setup, please consider README. - libr4d
-
For the communication abstraction for the targets located in racks, hypervisor r4d is used. The C library libr4d provides helper functions to access and comunicate with the hypervisor r4d.
For setup, please consider README. - libvirt-debian
-
This repo hosts the debianization of libvirt with additional changes, which make it possible to communicate with hypervisor r4d via libvirt. It is a clone of https://anonscm.debian.org/cgit/pkg-libvirt/libvirt.git/ and hosts the adapted debian/sid branch renamed as debian/jessie-backports and the adapted debian/stretch branch.
For setup, please consider README.
The results of the tests can be visualized with a web application.
- ci-web
-
The test results are displayed on a web interface. This git repository hosts the corresponding source code. You need the google-visualization-java repository to build the web interface. Furthermore you need access to the database storing the test results.
For setup, please consider README. - google-visualization-java
-
This repo is a fork of https://github.com/google/google-visualization-java with additional changes, to make it possible to use postgresql data bases.
For setup, please consider ci-web README and google-visualization-java README.
The DUTs or Jenkins slaves require several specific packages and also some extra settings to be able to test booting the DUT via Jenkins. To be able to reproducable rebuild the RFS, E.L.B.E. is used.
- elbe-rfs
-
This repo contains all required files to be able to build the RFS for a specific DUT. For more information about the tool which is used for building, please consider E.L.B.E. website.
The TESTBOX is a Banana Pi R1 router board expanded by a custom developed shield. This results in a standardized adaption system to be able to handle not standardized hardware in CI-RT and to run hardware assisted tests.
- testbox-shield
-
This repo hosts all TESTBOX shield related drawings, layouts and schematics. It is a kicad version 5 based project. Please read the README before use.
- testbox-rfs
-
This repo contains the E.L.B.E recipe to build a root file system for the TESTBOX. For more information about the tool E.L.B.E. which is used for building, please consider E.L.B.E. website.
Several repos are no longer required or outdated but still available. To not break existing links, those repos are kept. Links to current replacement repos are added to the README files inside those outdated repos.
- jenkins
-
Old repo which was used as long as Jenkins job configuration was done via xml files. Now pipelines are used instead.
- jenkins-pipeline
-
Old repo which contained the functionality of CI-RT scheduler. The functionality is now integrated in jenkins-cirt-libs.
- libvirt-slave-plugin
-
Old repo. All changes are in its upstream which is maintained by CI-RT now.
- warnings-plugin
-
Fork of the original warnings-plugin. Repo was required during the development of the kernel output parsing functionality.