mirror of
https://github.com/netdata/libbpf.git
synced 2026-03-24 18:29:06 +08:00
Both the bpf and bpf-next tree have suitable BPF selftest configurations available for usage with the latest kernel now upstream. While we do test on 4.9 and 5.5 kernels as well, there we just download prebuilt binaries. The configuration we use for building selftests is always the upstream one. With this change we remove the checked-in configuration, as it is now no longer needed. Signed-off-by: Daniel Müller <deso@posteo.net>
89 lines
2.6 KiB
YAML
89 lines
2.6 KiB
YAML
name: 'vmtest'
|
|
description: 'Build + run vmtest'
|
|
inputs:
|
|
kernel:
|
|
description: 'kernel version or LATEST'
|
|
required: true
|
|
default: 'LATEST'
|
|
arch:
|
|
description: 'what arch to test'
|
|
required: true
|
|
default: 'x86_64'
|
|
pahole:
|
|
description: 'pahole rev or master'
|
|
required: true
|
|
default: 'master'
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
# setup environment
|
|
- name: Setup environment
|
|
uses: libbpf/ci/setup-build-env@master
|
|
with:
|
|
pahole: ${{ inputs.pahole }}
|
|
# 1. download CHECKPOINT kernel source
|
|
- name: Get checkpoint commit
|
|
shell: bash
|
|
run: |
|
|
cat CHECKPOINT-COMMIT
|
|
echo "CHECKPOINT=$(cat CHECKPOINT-COMMIT)" >> $GITHUB_ENV
|
|
- name: Get kernel source at checkpoint
|
|
uses: libbpf/ci/get-linux-source@master
|
|
with:
|
|
repo: 'https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git'
|
|
rev: ${{ env.CHECKPOINT }}
|
|
dest: '${{ github.workspace }}/.kernel'
|
|
- name: Patch kernel source
|
|
uses: libbpf/ci/patch-kernel@master
|
|
with:
|
|
patches-root: '${{ github.workspace }}/travis-ci/diffs'
|
|
repo-root: '.kernel'
|
|
- name: Prepare to build BPF selftests
|
|
shell: bash
|
|
run: |
|
|
echo "::group::Prepare building selftest"
|
|
cd .kernel
|
|
cat tools/testing/selftests/bpf/config \
|
|
tools/testing/selftests/bpf/config.${{ inputs.arch }} > .config
|
|
make olddefconfig && make prepare
|
|
cd -
|
|
echo "::endgroup::"
|
|
# 2. if kernel == LATEST, build kernel image from tree
|
|
- name: Build kernel image
|
|
if: ${{ inputs.kernel == 'LATEST' }}
|
|
shell: bash
|
|
run: |
|
|
echo "::group::Build Kernel Image"
|
|
cd .kernel
|
|
make -j $((4*$(nproc))) all > /dev/null
|
|
cp vmlinux ${{ github.workspace }}
|
|
cd -
|
|
echo "::endgroup::"
|
|
# else, just download prebuilt kernel image
|
|
- name: Download prebuilt kernel
|
|
if: ${{ inputs.kernel != 'LATEST' }}
|
|
uses: libbpf/ci/download-vmlinux@master
|
|
with:
|
|
kernel: ${{ inputs.kernel }}
|
|
arch: ${{ inputs.arch }}
|
|
# 3. build selftests
|
|
- name: Build BPF selftests
|
|
uses: ./.github/actions/build-selftests
|
|
with:
|
|
repo-path: '.kernel'
|
|
kernel: ${{ inputs.kernel }}
|
|
# 4. prepare rootfs
|
|
- name: prepare rootfs
|
|
uses: libbpf/ci/prepare-rootfs@master
|
|
with:
|
|
kernel: ${{ inputs.kernel }}
|
|
project-name: 'libbpf'
|
|
arch: ${{ inputs.arch }}
|
|
# 5. run selftest in QEMU
|
|
- name: Run selftests
|
|
uses: libbpf/ci/run-qemu@master
|
|
with:
|
|
img: '/tmp/root.img'
|
|
vmlinuz: 'vmlinuz'
|
|
arch: ${{ inputs.arch }}
|