forked from xdp-project/xdp-tools
-
Notifications
You must be signed in to change notification settings - Fork 0
64 lines (60 loc) · 2.17 KB
/
selftests.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
name: Selftests
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
selftest:
runs-on: ubuntu-22.04
strategy:
matrix:
KERNEL_VERSION:
- "6.10.1-200.fc40"
- "6.6.14-200.fc39"
- "6.1.9-200.fc37"
- "5.16.8-200.fc35"
- "5.11.0-156.fc34"
- "5.6.19-300.fc32"
LLVM_VERSION:
- 16
- 17
- 18
- 19
fail-fast: false
env:
KERNEL_VERSION: ${{ matrix.KERNEL_VERSION }}
LLVM_VERSION: ${{ matrix.LLVM_VERSION }}
CLANG: clang-${{ matrix.LLVM_VERSION }}
LLC: llc-${{ matrix.LLVM_VERSION }}
LLVM_STRIP: llvm-strip-${{ matrix.LLVM_VERSION }}
# can't use unshare on old kernels
DID_UNSHARE: ${{ (startsWith(matrix.KERNEL_VERSION, '5.6') || startsWith(matrix.KERNEL_VERSION, '5.11')) && 1 || 0 }}
steps:
- name: Check out repository code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Prepare packages
run: |
sudo apt-get update
sudo apt-get install zstd binutils-dev elfutils libpcap-dev libelf-dev gcc-multilib pkg-config wireshark tshark bpfcc-tools python3 python3-pip python3-setuptools qemu-kvm rpm2cpio libdw-dev libdwarf-dev libcap-ng-dev
- name: Prepare Clang
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-$LLVM_VERSION main" | sudo tee -a /etc/apt/sources.list
sudo apt-get -qq update
sudo apt-get -qq -y install clang-$LLVM_VERSION lld-$LLVM_VERSION llvm-$LLVM_VERSION
- name: Install latest bpftool
run: |
git clone --depth=1 --recurse-submodules https://github.com/libbpf/bpftool bpftool
make -C bpftool/src
sudo make install -C bpftool/src prefix=/usr
- name: Compile
run: make
- name: Prepare test tools
run: .github/scripts/prepare_test_tools.sh
- name: Prepare test kernel
run: .github/scripts/prepare_test_kernel.sh
- name: Run tests
run: .github/scripts/run_tests_in_vm.sh