This document is a reference for options available in the KernelCI pipeline config file.
The frequency parameter is used to limit frequency of job execution. It is
specified as a string with a number of days, hours and minutes. For example,
1d2h30m
means that the job can only be executed
once every day, 2 hours and 30 minutes.
Job frequency is calculated to particular tree/branch, so if you have a job
that runs on multiple branches, it will be executed independently for each
branch.
Example:
jobs:
baseline-arm64-mediatek: &baseline-job
template: baseline.jinja2
kind: job
kcidb_test_suite: boot
params:
frequency: 1h
We have a set of rules that can be used to filter jobs based on different criteria.
tree:
Tree and branch rules can be formatted as <tree>:<branch>
, meaning only a given
branch is allowed for a specific tree. When prepended with !
, it indicates
a forbidden tree/branch combination.
min_version:
This rule allows to filter jobs based on the kernel version. The version
field
is the major version of the kernel, and the patchlevel
field is the minor version.
For example, version: 4, patchlevel: 19
will only allow jobs for kernel versions
4.19 and above.
max_version:
This rule allows to filter jobs based on the kernel version. The version
field
is the major version of the kernel, and the patchlevel
field is the minor version.
For example, version: 4, patchlevel: 19
will only allow jobs for kernel versions
4.19 and below.
rules:
tree:
- '!android'
This will exclude all jobs from the ‘android’ tree.
rules:
min_version:
version: 4
patchlevel: 19
tree:
- 'next'
- 'sashal-next'
This will only allow jobs from the ’next’ and ‘sashal-next’ trees with kernel version 4.19 and above.
rules:
tree:
- 'kernelci:staging-next'
This will only allow jobs from the ‘staging-next’ branch of the ‘kernelci’ tree.
rules:
min_version:
version: 6
patchlevel: 1
max_version:
version: 6
patchlevel: 6
arch:
- 'arm64'
tree:
- linus:master
- stable
branch:
- '!stable:master'
defconfig:
- '!allnoconfig'
fragments:
- 'kselftest'
- '!arm64-chromebook'
For example, the following rules definition mean the job can run only:
master
branch on the linus
tree,
or any branch except master
on the stable
treeallnoconfig
,
using the kselftest
fragment but not the arm64-chromebook
one