Commit Graph
115 Commits
Author SHA1 Message Date
Ihor Solodrai c6a6fdb609 ci: add libbpf-sync workflow
Run the sync monthly, and on demand. If it goes through without needing
a human, push the libbpf-sync-* branch and open a pull request.
Otherwise fail the run without opening one.

The sync job runs code from the kernel trees (bpf_doc.py), so it only
gets a read-only token. A separate publish job pushes the verified sync
bundle and opens the pull request.

Skip the run while any sync pull request is open. Manual runs default
to dry runs, which only upload the sync results as an artifact.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
2026-10-02 13:04:03 -07:00
Ihor Solodrai 30e2cb8936 ci: add script to run libbpf sync non-interactively
Run sync-kernel.sh with stdin from /dev/null, so that any prompt asking
for human input fails the sync.

The exit code of sync-kernel.sh isn't reliable (e.g., it exits with 0
when interrupted), so tell from its output whether the sync went
through or there was nothing to sync.

On success, leave a bundle with the sync branch, patches and a pull
request description with the sync log in the output directory.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
2026-10-02 13:04:03 -07:00
Ihor Solodrai 76ce128401 ci: add script to fetch kernel trees for libbpf sync
Set up a Linux repo the way sync-kernel.sh expects it: HEAD at
bpf-next's master and a bpf-master branch at bpf's master.

Fetch full history of both trees from the kernel-patches/bpf mirror on
GitHub, which is more reliable than git.kernel.org. The mirror may lag
behind, so don't require its branches to match git.kernel.org exactly,
only check that they're in the history of the master branches there.

Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
2026-10-02 13:04:03 -07:00
Ihor Solodrai bae275ac54 ci: route source pull requests to mailing list
Automatically comment on and close master-targeted pull requests that
touch kernel-synchronized libbpf paths. Keep mirror-only and unknown
paths open, with a github-only label for maintainer overrides.

Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
2026-09-14 16:20:07 -07:00
Ihor Solodrai eca706a5e1 ci: fix concurrency group for push and schedule triggers
github.head_ref is empty for push and schedule events, so all those
runs shared the same concurrency group and cancelled each other. Fall
back to github.run_id to give each non-PR run a unique group.

Assisted-by: Claude:claude-opus-4-6
Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
2026-03-11 18:35:55 -07:00
Ihor Solodrai ac0952761f ci: run vmtest job inside kbuilder-debian container
Assisted-by: Claude:claude-opus-4-6
Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
2026-03-11 18:35:55 -07:00
Ihor Solodrai 6b9b5e34b1 ci: remove LATEST kernel handling from vmtest
The libbpf CI always builds the kernel from source at CHECKPOINT-COMMIT;
there is no prebuilt-kernel matrix entry. Remove the `kernel` input and
the conditional build-vs-download logic, simplifying the workflow.

The run-vmtest action defaults KERNEL to "LATEST" internally when the
env var is unset, so DENYLIST-LATEST is still picked up. The vmlinuz
path is auto-discovered via `make -s image_name` when not passed.

Assisted-by: Claude:claude-opus-4-6
Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
2026-03-11 18:35:55 -07:00
Ihor Solodrai b57c0a1b38 ci: update libbpf/ci action references from v3 to v4
Assisted-by: Claude:claude-opus-4-6
Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
2026-03-11 18:35:55 -07:00
Andrii Nakryiko 3d451d916f ci: drop tmp.master testing of pahole
It hasn't been updated for a long time, seems abandoned.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2025-10-06 15:59:27 -07:00
Andrii Nakryiko c7f77de09d ci: update clang to v21 for test workflow
Update Clang version used.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2025-10-06 15:59:27 -07:00
Ihor Solodrai d4a841a32b ci: remove dependency on run-on-arch-action
run-on-arch-action is simply a wrapper around docker. There is no
value in using it in libbpf, as it is not complicated to run
non-native arch docker images directly on github-hosted runners.

Docker relies on qemu-user-static installed on the system to emulate
different architectures.

Recently there were various reports about multi-arch docker builds
failing with seemingly random issues, and it appears to boil down to
qemu [1]. I stumbled on this problem while updating s390x runners [2]
for BPF CI, and setting up more recent version of qemu helped.

This change addresses recent build failures on s390x and ppc64le.

[1] https://github.com/docker/setup-qemu-action/issues/188
[2] https://github.com/kernel-patches/runner/pull/69
[3] https://docs.docker.com/build/buildkit/#getting-started

Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
2025-01-31 22:30:52 -08:00
Ihor Solodrai 324f3c3846 ci: run coverty scan on push to master
Signed-off-by: Ihor Solodrai <ihor.solodrai@pm.me>
2025-01-17 13:53:19 -08:00
Ihor Solodrai 63528b7a4d ci: remove sourcing helpers.sh from coverity workflow
Signed-off-by: Ihor Solodrai <ihor.solodrai@pm.me>
2025-01-17 13:53:19 -08:00
Ihor Solodrai c924f8d3dd ci: sync with libbpf/ci@v3
* vmtest.yml
  * use v3 of libbpf/ci actions
  * remove unnecessary selftests preparation steps
* ci/vmtest
  * remove unnecessary scripts and configs
  * add libbpf-specific run-vmtest.env [1]

[1] https://github.com/libbpf/ci/pull/166

Signed-off-by: Ihor Solodrai <ihor.solodrai@pm.me>
2025-01-15 19:30:48 -08:00
Ihor Solodrai c5f22aca0f ci: remove llvm-17 variant of the workflow
Also try prettifying the job names.

Signed-off-by: Ihor Solodrai <ihor.solodrai@pm.me>
2024-11-20 10:23:35 -08:00
Ihor Solodrai bfc9770b24 ci: switch to libbpf/ci actions @v2
Signed-off-by: Ihor Solodrai <ihor.solodrai@pm.me>
2024-11-18 22:00:09 -08:00
Ihor Solodrai cd73a17321 ci: configure CI test jobs
* Don't run pahole@tmp.master + llvm-17 combination.
* Use descriptive name of for vmtest jobs
* Don't run test_progs_cpuv4 when LLVM_VERSION < 18 (same as on BPF CI)
* Add some logging to prepare-selftests-run.sh

Signed-off-by: Ihor Solodrai <ihor.solodrai@pm.me>
2024-11-18 22:00:09 -08:00
Ihor Solodrai 39e4e86263 ci: cleanup now unused local actions and workflows
Signed-off-by: Ihor Solodrai <ihor.solodrai@pm.me>
2024-11-18 22:00:09 -08:00
Ihor Solodrai c1f8925561 ci: bump llvm version to 18
Signed-off-by: Ihor Solodrai <ihor.solodrai@pm.me>
2024-11-18 22:00:09 -08:00
Ihor Solodrai e0687f9f54 ci: add vmtest as a reusable workflow
Signed-off-by: Ihor Solodrai <ihor.solodrai@pm.me>
2024-11-18 22:00:09 -08:00
Ihor Solodrai dcf6ad6c70 ci: switch to libbpf/ci/build-selftests action
Signed-off-by: Ihor Solodrai <ihor.solodrai@pm.me>
2024-11-18 22:00:09 -08:00
Ihor Solodrai a453ffb7ea ci: add a vmtest step for setting up selftests run
Signed-off-by: Ihor Solodrai <ihor.solodrai@pm.me>
2024-11-18 22:00:09 -08:00
Ihor Solodrai 779cb2b65b ci: use libbpf/ci/run-vmtest action to run selftests
Signed-off-by: Ihor Solodrai <ihor.solodrai@pm.me>
2024-11-18 22:00:09 -08:00
Andrii Nakryiko 244485ce72 ci: don't fail test kmodule builds on older kernels
We are now getting:

  WARNING: Module.symvers is missing.
           Modules may not have dependencies or modversions.
           You may get many unresolved symbol errors.
           You can set KBUILD_MODPOST_WARN=1 to turn errors into warning
           if you want to proceed at your own risk.

So let's set KBUILD_MODPOST_WARN=1.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2024-11-13 19:25:37 -08:00
Ihor Solodrai 94610d4c27 ci: remove CI jobs for 4.9.0 and 5.5.0 kernels
Signed-off-by: Ihor Solodrai <isolodrai@meta.com>
2024-11-13 19:22:53 -08:00
Andrii Nakryiko 09b9e83102 ci: bump uraimo/run-on-arch-action version
Bump to latest uraimo/run-on-arch-action@v2.8.1 version, hoping that
fixes the CI.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2024-10-24 14:34:52 -07:00
Jordan Rome 7827ca87d1 ci: regenerate vmlinux.h
Regenerate latest vmlinux.h for old kernel CI tests.

Signed-off-by: Jordan Rome <linux@jordanrome.com>
2024-10-09 14:13:35 -07:00
Ihor Solodrai 1f98105e54 ci: bump actions/upload-artifact to v4
Signed-off-by: Ihor Solodrai <ihor.solodrai@pm.me>
2024-10-07 15:38:01 -07:00
Andrii Nakryiko a4161e00f9 ci: get rid of s390x kernel tests
Kernel/libbpf code is very well tested on s390x in BPF CI, so get rid of
it here as it often is a source of trouble and noise, without really
benefiting us much.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2024-10-07 15:38:01 -07:00
Andrii Nakryiko caa17bdcbf ci: regenerate vmlinux.h
Regenerated latest vmlinux.h for old kernels.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2024-08-30 16:29:01 -07:00
chantra 26443a6d43 ci: fix test job names
* use the architecture name in job name instead of `runs_on` labels

Signed-off-by: Manu Bretelle <chantr4@gmail.com>
2024-08-29 10:58:52 +01:00
Manu Bretelle bc24cd126a ci: run test on Ubuntu 24.04
Signed-off-by: Manu Bretelle <chantr4@gmail.com>
2024-08-22 12:59:18 -07:00
Manu Bretelle 92316f5072 ci: Pass llvm-version as an input and enforce passing it to build-selftests action
Signed-off-by: Manu Bretelle <chantr4@gmail.com>
2024-08-21 16:04:36 -07:00
Manu Bretelle a73c6f7f80 ci: Use llvm repositories matching the host we are running on
As this will change to a Ubuntu 24.04 runner, we want this to automatically detect
which ubuntu version it is running on.

Signed-off-by: Manu Bretelle <chantr4@gmail.com>
2024-08-21 16:04:36 -07:00
Manu Bretelle 8e47e755cd ci: bump default llvm version to 17
Ubuntu 24.04's minimum llvm version is 17. Bumping this now to limit changes later.

Signed-off-by: Manu Bretelle <chantr4@gmail.com>
2024-08-21 16:04:36 -07:00
Manu Bretelle ec0d0fda8b ci: lock down s390x CI to Ubuntu 20.04 runners
I am working on upgrading to 24.04 runners. In order to make sure that current jobs are scheduled
on Ubuntu 20.04, we need to ask for runners with tag `docker-main`, which is currently
set by those old runners.
Later, we will be able to switch this tag to `docker-noble-main` which are Ubuntu 24.04 runners.

Signed-off-by: Manu Bretelle <chantr4@gmail.com>
2024-08-21 16:04:36 -07:00
Andrii Nakryiko 42065ea662 ci: make pahole-staging workflow manually triggerable
Allow to manually trigger pahole-staging workflow.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2024-06-06 14:39:09 -07:00
Andrii Nakryiko 764d19da07 ci: revert switching to ubuntu-latest for pahole-staging workflow
pahole staging workflow is using the same old VM image as BPF selftests
stages. It doesn't have recent enough glibc, so we can't yet switch to
newer Ubuntu, unfortunately.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2024-06-06 14:32:23 -07:00
Andrii Nakryiko fbcb2871fe ci: regenerate vmlinux.h
Regenerated latest vmlinux.h.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2024-06-03 13:41:26 -07:00
Andrii Nakryiko 61a6e8edd7 github: remove PR template
No one is looking at it anyways. It just gets in the way.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2024-06-03 13:41:26 -07:00
Andrii Nakryiko 9b789075a9 ci: switch to ubuntu-latest where possible
Track ubuntu-latest where relevant and possible.
We can't update to ubuntu-latest when building and running BPF
selftests, though, because our QEMU image has too old of an GLIBC.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2024-05-28 22:37:25 -07:00
Andrii Nakryiko c22d662a95 ci: update vmlinux.h to latest version
Re-generate vmlinux.h to add latest kernel types necessary for BPF
selftests.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2024-05-28 21:15:00 -07:00
Andrii Nakryiko 22bd976613 ci: update vmlinux.h
Regenerate vmlinux.h to get all the latest types.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2024-04-30 09:09:32 -07:00
Yonghong Song 2fdcc365a0 ci: regenerate latest vmlinux.h
Update vmlinux.h to make BPF selftests compile.

Signed-off-by: Yonghong Song <yonghong.song@linux.dev>
2024-04-24 15:16:35 -07:00
Geyslan Gregório 46eafba62e ci: bump run-on-arch action to v2.7.1
More info: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/

Signed-off-by: Geyslan Gregório <geyslan@gmail.com>
2024-04-02 21:51:25 -07:00
Geyslan Gregório 6d3595d215 ci: bump checkout action to v4
Due to the transition from Node 16 to Node 20, the checkout action
needs to be updated to v4.

More info: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/

Signed-off-by: Geyslan Gregório <geyslan@gmail.com>
2024-04-02 10:25:11 -07:00
Andrii Nakryiko 25a9cc27d7 ci: regenerate latest vmlinux.h
Update vmlinux.h to make BPF selftests compile.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2024-03-25 21:58:26 -07:00
Kui-Feng Lee f4e9b606f4 ci: clean up bpf_test_no_cfi.ko for v5.5.0 and v4.9.0.
bpf_test_no_cfi.ko is not available for v5.5.0 and v4.9.0.

Signed-off-by: Kui-Feng Lee <thinker.li@gmail.com>
2024-02-27 10:14:31 -08:00
Manu Bretelle 445486dcbf ci: Pass arch parameter to setup-build-env
Since https://github.com/libbpf/ci/commit/1bc40aecb32f1e0f0dc2fff87e7c91b4d5fe03c5
arch parameter needs to be passed to `setup-build-env`

Signed-off-by: Manu Bretelle <chantr4@gmail.com>
2024-02-15 10:44:45 -08:00
Andrii Nakryiko 0f84f3bef6 ci: regenerate vmlinux.h
Update vmlinux.h for old kernel CI workflows.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2024-01-26 18:12:29 -05:00