name: Test eunomia-bpf example CI on: push: branches: [ "main" ] pull_request: branches: [ "main" ] schedule: - cron: '0 0 * * 0' permissions: contents: read jobs: build: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v7 with: submodules: 'recursive' - name: install deps run: | sudo apt-get update sudo apt-get install -y --no-install-recommends \ libelf1 libelf-dev zlib1g-dev \ make git clang llvm pkg-config build-essential dwarves \ linux-headers-generic-hwe-24.04 - name: test 11 bootstrap run: | make -C src/11-bootstrap sudo timeout -s 2 3 src/11-bootstrap/bootstrap || if [ $? = 124 ]; then exit 0; else exit $?; fi - name: test 12 profile run: | make -C src/12-profile # sudo timeout -s 2 3 src/12-profile/profile || if [ $? = 124 ]; then exit 0; else exit $?; fi - name: test 13 tcpconnlat run: | make -C src/13-tcpconnlat sudo timeout -s 2 3 src/13-tcpconnlat/tcpconnlat || if [ $? = 124 ]; then exit 0; else exit $?; fi - name: test 14 tcpstates run: | make -C src/14-tcpstates sudo timeout -s 2 3 src/14-tcpstates/tcpstates || if [ $? = 124 ]; then exit 0; else exit $?; fi - name: test 15 javagc run: | make -C src/15-javagc - name: test 16 memleak run: | make -C src/16-memleak sudo timeout -s 2 3 src/16-memleak/memleak || if [ $? = 124 ]; then exit 0; else exit $?; fi - name: test 17 biopattern run: | make -C src/17-biopattern sudo timeout -s 2 3 src/17-biopattern/biopattern || if [ $? = 124 ]; then exit 0; else exit $?; fi - name: test 23 http run: | make -C src/23-http sudo timeout -s 2 3 src/23-http/sockfilter || if [ $? = 124 ]; then exit 0; else exit $?; fi - name: test 24 hide run: | make -C src/24-hide - name: test 26 sudo run: | make -C src/26-sudo - name: test 27 replace run: | make -C src/27-replace - name: test 28 detach run: | make -C src/28-detach sudo mount bpffs -t bpf /sys/fs/bpf sudo mkdir /sys/fs/bpf/textreplace # sudo src/28-detach/textreplace2 -f /proc/modules -i 'joydev' -r 'cryptd' -d || if [ $? = 124 ]; then exit 0; else exit $?; fi - name: test 29 sockops run: | make -C src/29-sockops # TODO: add test - name: test 30 sslsniff run: | make -C src/30-sslsniff sudo timeout -s 2 3 src/30-sslsniff/sslsniff || if [ $? = 124 ]; then exit 0; else exit $?; fi - name: test 32 wallclock-profiler run: | make -C src/32-wallclock-profiler # Test individual tools can be built and show help src/32-wallclock-profiler/oncputime --help || true src/32-wallclock-profiler/offcputime --help || true - name: test 33 funclatency run: | make -C src/33-funclatency - name: test 34 syscall run: | make -C src/34-syscall - name: test 35-user-ringbuf run: | make -C src/35-user-ringbuf sudo timeout -s 2 3 src/35-user-ringbuf/user_ringbuf || if [ $? = 124 ]; then exit 0; else exit $?; fi - name: test 38 btf-uprobe run: | make -C src/38-btf-uprobe - name: test 38 btf-uprobe examples run: | make -C src/38-btf-uprobe/examples - name: test 41 xdp run: | make -C src/41-xdp-tcpdump - name: test 42 xdp run: | make -C src/42-xdp-loadbalancer - name: test 43 kfuncs run: | make -C src/43-kfuncs - name: test 43 kfuncs module run: | KDIR=$(find /usr/src -maxdepth 1 -type d -name 'linux-headers-*-generic' | sort -V | tail -1) test -n "$KDIR" make -C src/43-kfuncs/module KDIR="$KDIR" - name: test 44 run: | make -C src/44-scx-simple - name: test 45 run: | make -C src/45-scx-nest - name: test 46 xdp-pktgen run: | make -C src/46-xdp-test - name: test 47 cuda-events run: | make -C src/47-cuda-events cuda_events if command -v nvcc >/dev/null; then make -C src/47-cuda-events basic02 bench fi - name: test 48 energy run: | make -C src/48-energy - name: test 49 HID run: | make -C src/49-hid - name: test features bpf_arena run: | make -C src/features/bpf_arena - name: test features bpf_iters run: | make -C src/features/bpf_iters - name: test features bpf_wq run: | make -C src/features/bpf_wq - name: test features dynptr run: | make -C src/features/dynptr - name: test features struct_ops run: | make -C src/features/struct_ops - name: test features struct_ops module run: | KDIR=$(find /usr/src -maxdepth 1 -type d -name 'linux-headers-*-generic' | sort -V | tail -1) test -n "$KDIR" make -C src/features/struct_ops/module KDIR="$KDIR" - name: test 50 tcx run: | make -C src/50-tcx - name: test features bpf_token run: | make -C src/features/bpf_token - name: test cgroup run: | make -C src/cgroup