diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 08:24:23 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 08:24:23 +0000 |
commit | 67c27783d7735af6ba22b9f031d97ca4ea56c29c (patch) | |
tree | 17770fad3c90bf420cb2470e6e51255fcbf31bf9 /.github/actions/vmtest | |
parent | Initial commit. (diff) | |
download | libbpf-67c27783d7735af6ba22b9f031d97ca4ea56c29c.tar.xz libbpf-67c27783d7735af6ba22b9f031d97ca4ea56c29c.zip |
Adding upstream version 1.1.0.upstream/1.1.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | .github/actions/vmtest/action.yml | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/.github/actions/vmtest/action.yml b/.github/actions/vmtest/action.yml new file mode 100644 index 0000000..d124fbd --- /dev/null +++ b/.github/actions/vmtest/action.yml @@ -0,0 +1,99 @@ +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 }}/ci/diffs' + repo-root: '.kernel' + - name: Prepare to build BPF selftests + shell: bash + run: | + source $GITHUB_ACTION_PATH/../../../ci/vmtest/helpers.sh + foldable start "Prepare building selftest" + cd .kernel + cat tools/testing/selftests/bpf/config \ + tools/testing/selftests/bpf/config.${{ inputs.arch }} > .config + make olddefconfig && make prepare + cd - + foldable end + # 2. if kernel == LATEST, build kernel image from tree + - name: Build kernel image + if: ${{ inputs.kernel == 'LATEST' }} + shell: bash + run: | + source $GITHUB_ACTION_PATH/../../../ci/vmtest/helpers.sh + foldable start "Build Kernel Image" + cd .kernel + make -j $((4*$(nproc))) all > /dev/null + cp vmlinux ${{ github.workspace }} + cd - + foldable end + # 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 + env: + KBUILD_OUTPUT: '.kernel' + with: + project-name: 'libbpf' + arch: ${{ inputs.arch }} + kernel: ${{ inputs.kernel }} + kernel-root: '.kernel' + kbuild-output: ${{ env.KBUILD_OUTPUT }} + image-output: '/tmp/root.img' + # 5. run selftest in QEMU + - name: Run selftests + env: + KERNEL: ${{ inputs.kernel }} + REPO_ROOT: ${{ github.workspace }} + uses: libbpf/ci/run-qemu@master + with: + arch: ${{ inputs.arch }} + img: '/tmp/root.img' + vmlinuz: 'vmlinuz' + kernel-root: '.kernel' |