Skip to content

arighi PR run

arighi PR run #37

Workflow file for this run

name: build-scheds
run-name: ${{ github.actor }} PR run
on: [pull_request, push]
jobs:
build-schedulers:
runs-on: ubuntu-22.04
steps:
### OTHER REPOS ####
# Hard turn-off interactive mode
- run: echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections
# Add sched-ext external ppa to get the latest sched-ext kernel
- run: sudo add-apt-repository -n -y ppa:arighi/sched-ext
- run: sudo sed -i s/jammy/noble/ /etc/apt/sources.list.d/arighi-ubuntu-sched-ext-jammy.list
# Refresh packages list
- run: sudo apt update
### DOWNLOAD AND INSTALL DEPENDENCIES ###
# Download dependencies packaged by Ubuntu
- run: sudo apt -y install coreutils cmake cargo elfutils libelf-dev libunwind-dev libzstd-dev linux-headers-generic linux-tools-common linux-tools-generic ninja-build python3-pip python3-requests qemu-kvm udev iproute2 busybox-static libvirt-clients kbd kmod file rsync zstd
# clang 17
# Use a custom llvm.sh script which includes the -y flag for
# add-apt-repository. Otherwise, the CI job will hang. If and when
# https://github.com/opencollab/llvm-jenkins.debian.net/pull/26 is
# merged, we can go back to using https://apt.llvm.org/llvm.sh.
- run: wget https://raw.githubusercontent.com/Decave/llvm-jenkins.debian.net/fix_llvmsh/llvm.sh
- run: chmod +x llvm.sh
- run: sudo ./llvm.sh all
- run: sudo ln -sf /usr/bin/clang-17 /usr/bin/clang
- run: sudo ln -sf /usr/bin/llvm-strip-17 /usr/bin/llvm-strip
# bpftool
- run: git clone --recurse-submodules --branch v7.3.0 https://github.com/libbpf/bpftool.git
- run: make -j -C bpftool/src
- run: sudo make -j -C bpftool/src install
# asm headers
- run: sudo ln -s /usr/include/asm-generic /usr/include/asm
- uses: actions/checkout@v4
# libbpf
- run: git clone --recurse-submodules --branch v1.3.0 https://github.com/libbpf/libbpf.git
- run: make -j -C libbpf/src
- run: sudo make -j -C libbpf/src install
# meson
- run: pip install meson
# Install virtme-ng
- run: pip install virtme-ng
# Download a sched-ext enabled kernel
- run: apt download linux-image-unsigned-6.7.0-3-generic linux-modules-6.7.0-3-generic
- run: mkdir -p kernel
- run: for f in *.deb; do dpkg -x $f kernel; done
### END DEPENDENCIES ###
# The actual build:
- run: meson setup build -Dlibbpf_a=`pwd`/libbpf/src/libbpf.a -Dkernel=$(pwd)/$(ls -c1 kernel/boot/vmlinuz* | tail -1)
- run: meson compile -C build
# Test schedulers
- run: meson compile -C build test_sched