Skip to content

requirements: pin(ish) Python deps that we use to check things #69

requirements: pin(ish) Python deps that we use to check things

requirements: pin(ish) Python deps that we use to check things #69

Workflow file for this run

# GitHub actions workflow.
# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions
name: Build+Test CI
on: [pull_request, push]
jobs:
make:
strategy:
matrix:
os: [ubuntu-latest]
cc: [gcc, clang]
bb: [meson, muon]
sanitizer: [none, address, undefined]
fail-fast: false
runs-on: ${{ matrix.os }}
env:
CC: ${{ matrix.cc }}
BB: ${{ matrix.bb }}
SANITIZER: ${{ matrix.sanitizer }}
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y python3-pyelftools python3-pip \
libcap-dev libseccomp-dev ninja-build \
pkg-config
case "$BB" in
meson)
sudo pip3 install meson
;;
muon)
wget https://muon.build/releases/edge/muon-edge-amd64-linux-static -O muon
chmod +x muon
sudo install -Dm755 muon /usr/local/bin/muon
;;
esac
- uses: actions/checkout@v4
- run: |
export PKG_CONFIG_PATH="/usr/lib/$(uname -m)-linux-gnu/pkgconfig/"
case "$BB" in
muon)
alias ninja="muon samu"
;;
esac
"$BB" setup -Duse_libcap=enabled \
-Duse_seccomp=true \
-Dbuild_manpages=disabled \
-Dtests=true \
-Duse_fuzzing=true \
-Db_sanitize="${SANITIZER}" \
build
ninja -C build
( cd build && "$BB" test; )
build-macos:
strategy:
matrix:
os: [macos-latest]
cc: [clang]
runs-on: ${{ matrix.os }}
env:
CC: ${{ matrix.cc }}
steps:
- name: Install dependencies
run: brew install meson ninja
- uses: actions/checkout@v4
- run: |
meson -Duse_libcap=disabled \
-Duse_seccomp=false \
-Dbuild_manpages=disabled \
-Dtests=true \
-Duse_fuzzing=false \
build
ninja -C build
# The unittests generally assume a Linux ELF host, so don't bother making
# sure they pass on macOS. Run them out of morbid curiosity I guess.
ninja -kC build test ||: