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