mirror of
https://github.com/netdata/libbpf.git
synced 2026-03-18 15:29:06 +08:00
* 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>
118 lines
3.6 KiB
YAML
118 lines
3.6 KiB
YAML
name: 'Build kernel and selftests/bpf, run selftests via vmtest'
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
runs_on:
|
|
required: true
|
|
default: 'ubuntu-24.04'
|
|
type: string
|
|
arch:
|
|
description: 'what arch to test'
|
|
required: true
|
|
default: 'x86_64'
|
|
type: string
|
|
kernel:
|
|
description: 'kernel version or LATEST'
|
|
required: true
|
|
default: 'LATEST'
|
|
type: string
|
|
pahole:
|
|
description: 'pahole rev or branch'
|
|
required: false
|
|
default: 'master'
|
|
type: string
|
|
llvm-version:
|
|
description: 'llvm version'
|
|
required: false
|
|
default: '18'
|
|
type: string
|
|
jobs:
|
|
vmtest:
|
|
name: pahole@${{ inputs.pahole }}
|
|
runs-on: ${{ inputs.runs_on }}
|
|
steps:
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup environment
|
|
uses: libbpf/ci/setup-build-env@v3
|
|
with:
|
|
pahole: ${{ inputs.pahole }}
|
|
arch: ${{ inputs.arch }}
|
|
llvm-version: ${{ inputs.llvm-version }}
|
|
|
|
- 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@v3
|
|
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@v3
|
|
with:
|
|
patches-root: '${{ github.workspace }}/ci/diffs'
|
|
repo-root: '.kernel'
|
|
|
|
- name: Configure kernel build
|
|
shell: bash
|
|
run: |
|
|
cd .kernel
|
|
cat tools/testing/selftests/bpf/config \
|
|
tools/testing/selftests/bpf/config.${{ inputs.arch }} > .config
|
|
# this file might or might not exist depending on kernel version
|
|
cat tools/testing/selftests/bpf/config.vm >> .config || :
|
|
make olddefconfig && make prepare
|
|
cd -
|
|
|
|
- name: Build kernel image
|
|
if: ${{ inputs.kernel == 'LATEST' }}
|
|
shell: bash
|
|
run: |
|
|
cd .kernel
|
|
make -j $((4*$(nproc))) all
|
|
cp vmlinux ${{ github.workspace }}
|
|
cd -
|
|
|
|
- name: Download prebuilt kernel
|
|
if: ${{ inputs.kernel != 'LATEST' }}
|
|
uses: libbpf/ci/download-vmlinux@v3
|
|
with:
|
|
kernel: ${{ inputs.kernel }}
|
|
arch: ${{ inputs.arch }}
|
|
|
|
- name: Build selftests/bpf
|
|
uses: libbpf/ci/build-selftests@v3
|
|
env:
|
|
MAX_MAKE_JOBS: 32
|
|
VMLINUX_BTF: ${{ github.workspace }}/vmlinux
|
|
VMLINUX_H: ${{ inputs.kernel != 'LATEST' && format('{0}/.github/actions/build-selftests/vmlinux.h', github.workspace) || '' }}
|
|
with:
|
|
arch: ${{ inputs.arch }}
|
|
kernel-root: ${{ github.workspace }}/.kernel
|
|
llvm-version: ${{ inputs.llvm-version }}
|
|
|
|
- name: Run selftests
|
|
env:
|
|
ALLOWLIST_FILE: /tmp/allowlist
|
|
DENYLIST_FILE: /tmp/denylist
|
|
KERNEL: ${{ inputs.kernel }}
|
|
VMLINUX: ${{ github.workspace }}/vmlinux
|
|
LLVM_VERSION: ${{ inputs.llvm-version }}
|
|
SELFTESTS_BPF: ${{ github.workspace }}/.kernel/tools/testing/selftests/bpf
|
|
VMTEST_CONFIGS: ${{ github.workspace }}/ci/vmtest/configs
|
|
uses: libbpf/ci/run-vmtest@v3
|
|
with:
|
|
arch: ${{ inputs.arch }}
|
|
kbuild-output: ${{ github.workspace }}/.kernel
|
|
kernel-root: ${{ github.workspace }}/.kernel
|
|
vmlinuz: ${{ inputs.arch }}/vmlinuz-${{ inputs.kernel }}
|
|
|