Skip to content

Commit

Permalink
Merge pull request #40 from sched-ext/ci
Browse files Browse the repository at this point in the history
scx: Add CI action that builds schedulers for PRs
  • Loading branch information
Byte-Lab authored Dec 19, 2023
2 parents 3049d60 + 4523b10 commit eb7b3c9
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 1 deletion.
49 changes: 49 additions & 0 deletions .github/workflows/build-scheds.yml
Original file line number Diff line number Diff line change
@@ -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
3 changes: 2 additions & 1 deletion scheds/c/meson.build
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit eb7b3c9

Please sign in to comment.