Skip to content

Adding dynamic analysis #262

Adding dynamic analysis

Adding dynamic analysis #262

Workflow file for this run

name: Build and run tests
on:
push:
branches:
- master
pull_request:
jobs:
build-and-test:
runs-on: ubuntu-latest
container:
image: ${{ matrix.distro[0] }}
env:
LDFLAGS: ${{ matrix.link-n-sane[0] }}
CC: ${{ matrix.compiler[0] }}
CXX: ${{ matrix.compiler[1] }}
options: --privileged
strategy:
fail-fast: false
matrix:
distro:
- [ "debian:testing", "apt update", "apt install -y" ]
- [ "alpine:3.20", "true", "apk add --no-cache", "g++ musl-dev compiler-rt" ]
- [ "alpine:edge", "true", "apk add --no-cache", "g++ musl-dev compiler-rt" ]
compiler:
- [ gcc, g++ ]
- [ clang, clang++ ]
link-n-sane:
- [ "", "none" ]
- [ "-static", "none" ]
- [ "", "address,undefined" ]
- [ "", "thread" ]
- [ "", "memory" ]
- [ "", "leak" ]
options:
- { pcie_opt: "true" }
- { pcie_opt: "false" }
exclude:
- link-n-sane: [ "", "memory" ]
compiler: [ gcc, g++ ]
- link-n-sane: [ "", "leak" ]
distro: [ "alpine:3.20", "true", "apk add --no-cache", "g++ musl-dev compiler-rt" ]
- link-n-sane: [ "", "leak" ]
distro: [ "alpine:edge", "true", "apk add --no-cache", "g++ musl-dev compiler-rt" ]
- link-n-sane: [ "", "thread" ]
distro: [ "alpine:3.20", "true", "apk add --no-cache", "g++ musl-dev compiler-rt" ]
- link-n-sane: [ "", "thread" ]
distro: [ "alpine:edge", "true", "apk add --no-cache", "g++ musl-dev compiler-rt" ]
- link-n-sane: [ "", "memory" ]
distro: [ "alpine:3.20", "true", "apk add --no-cache", "g++ musl-dev compiler-rt" ]
- link-n-sane: [ "", "memory" ]
distro: [ "alpine:edge", "true", "apk add --no-cache", "g++ musl-dev compiler-rt" ]
- link-n-sane: [ "", "address,undefined" ]
distro: [ "alpine:3.20", "true", "apk add --no-cache", "g++ musl-dev compiler-rt" ]
- link-n-sane: [ "", "address,undefined" ]
distro: [ "alpine:edge", "true", "apk add --no-cache", "g++ musl-dev compiler-rt" ]
steps:
- name: Install dependencies
run: ${{ matrix.distro[1] }} && ${{ matrix.distro[2] }} git meson ${{ matrix.distro[3] }} ${{ matrix.compiler[0] }}
- uses: actions/checkout@v4
with:
submodules: true
- name: Configure
run: meson setup --buildtype release --debug --werror -Dpcie_opt=${{ matrix.options.pcie_opt }} -Db_sanitize=${{ matrix.link-n-sane[1] }} build || cat build/meson-logs/meson-log.txt /nonexistent
- name: Build
run: ninja -C build
- name: Allow tests to run
run: echo 1 > /proc/sys/fs/suid_dumpable
- name: Run tests
run: ninja -C build test