mirror of
https://github.com/sched-ext/scx.git
synced 2024-11-25 20:20:23 +00:00
Merge pull request #40 from sched-ext/ci
scx: Add CI action that builds schedulers for PRs
This commit is contained in:
commit
eb7b3c99f0
49
.github/workflows/build-scheds.yml
vendored
Normal file
49
.github/workflows/build-scheds.yml
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
name: build-scheds
|
||||
run-name: ${{ github.actor }} PR run
|
||||
on: [pull_request]
|
||||
jobs:
|
||||
build-schedulers:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
|
||||
### DOWNLOAD AND INSTALL DEPENDENCIES ###
|
||||
|
||||
# Download dependencies packaged by Ubuntu
|
||||
- run: sudo apt update
|
||||
- run: sudo apt -y install cmake cargo elfutils libelf-dev linux-headers-generic linux-tools-common ninja-build
|
||||
|
||||
# clang 17
|
||||
- run: wget https://apt.llvm.org/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
|
||||
|
||||
# zstd
|
||||
- run: git clone --branch zstd-0.4.2 https://github.com/facebook/zstd.git
|
||||
- run: make -j -C zstd
|
||||
- run: sudo make -j -C zstd 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
|
||||
|
||||
### END DEPENDENCIES ###
|
||||
|
||||
# The actual build:
|
||||
- run: meson setup build -Dlibbpf_a=`pwd`/libbpf/src/libbpf.a --prefix ~
|
||||
- run: meson compile -C build
|
@ -1,10 +1,11 @@
|
||||
c_scheds = ['scx_simple', 'scx_qmap', 'scx_central', 'scx_pair', 'scx_flatcg', 'scx_userland', 'scx_nest']
|
||||
|
||||
foreach sched: c_scheds
|
||||
thread_dep = dependency('threads')
|
||||
bpf_o = gen_bpf_o.process(sched + '.bpf.c', extra_args: bpf_includes)
|
||||
bpf_skel = gen_bpf_skel.process(bpf_o)
|
||||
executable(sched, [bpf_skel, sched + '.c'],
|
||||
include_directories: [user_c_includes],
|
||||
dependencies: libbpf_dep,
|
||||
dependencies: [libbpf_dep, thread_dep],
|
||||
install: true)
|
||||
endforeach
|
||||
|
Loading…
Reference in New Issue
Block a user