Github RISC-V CI (BoF follow-up)

Björn Töpel bjorn at kernel.org
Mon Sep 30 07:54:19 PDT 2024


Hi,

Following up on the discussion around CI that came up during Plumbers
RISC-V BoF.

TL;DR: There's a CI running builds/and tests for RISC-V. Check out [4],
if you're a nice person, try to fix what's broken.

Long version: As most of you know there are a number of Linux kernel
CIs out there, that build/test some areas of RISC-V. kernelci does
some, and Linaro LKFT some.

Yet another CI runs in parallel to the RISC-V Patchwork CI on Github,
running on the RISE sponsored runners [1].

A major piece missing is a summary/dashboard page. That's still in the
planning phase. I'll be looking into what the kernel CI folks are
offering in that space (KCIDB).

The CI pulls in a couple of branches, e.g. Linus' master, Palmer's
staging branches, and more. All branches are listed via the PRs here
[4].

There are two workflows ci-series (build and boot), and for bpf,
bpf-next, and Linus' master ci-kselftest is running as an experiment.
I'll be adding kselftest to the other branches, and a couple of other
suites once we get more build machines, and the tests are somewhat
more stable. ;-)

All the builds are cross compiled, and the tests are performed on
qemu. It's all run in a Docker container [3], that can be pulled with:

  $ docker pull ghcr.io/linux-riscv/pw-builder:latest

The Github CI scripts (again, shared with Patchwork) reside here [2].

Each time a tree moves, a new build is performed. Sometimes, the tree
moves before the job is done. In that case it's cancelled, and re-run
on the new head.

Build/boot: A 6.12-rc1 run is here [6]. The log artifacts are at the bottom.
Click "build-series", and expand "Run checks" for more details (or
checkout the logs).

Kselftest: A 6.12-rc1 run is here [5]. The kernel configuration is
defconfig+kselftest-merge (plus some additional bandaid patches that
haven't made it to mainline [7]. The test suites include everything
that's explicitly in TARGETS (top kselftest Makefile), and that has
cross compile support (e.g. NOT sched_ext yet ;-)).

Download the logs from [5], and then:

  $ egrep -a '^TEST|^not|Kernel panic' *__kselftest{,-bpf,-net,-ftrace}.log

to view the failed tests. On 6.12-rc1 the ftrace suite panics! :-P

It's far from perfect, and we're still not running enough (AFAIK) tests on
real HW, but it's something that's available now. Patches are *welcome*
X-D.


Björn

[1] https://github.com/linux-riscv/linux-riscv
[2] https://github.com/linux-riscv/github-ci/
[3] https://github.com/linux-riscv/docker
[4] https://github.com/linux-riscv/linux-riscv/pulls?q=is%3Apr+is%3Aopen+test%5D
[5] https://github.com/linux-riscv/linux-riscv/actions/runs/11096387863
[6] https://github.com/linux-riscv/linux-riscv/actions/runs/11096387858
[7] https://github.com/linux-riscv/github-ci/tree/main/.github/scripts/series/patches



More information about the linux-riscv mailing list