Skip to content

Commit

Permalink
more CI platform coverage + sanitizers
Browse files Browse the repository at this point in the history
  • Loading branch information
spoonincode committed Jan 10, 2024
1 parent 9d1c472 commit 2abc56d
Showing 1 changed file with 27 additions and 14 deletions.
41 changes: 27 additions & 14 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,33 @@ on:

jobs:
build-test:
name: Build & Test
runs-on: ubuntu-22.04
name: 'Build & Test: ${{matrix.cfg.name}}'
strategy:
fail-fast: false
matrix:
os: ["debian:bullseye", "ubuntu:jammy"]
container: ${{matrix.os}}
include:
- cfg: {name: 'macos', runson: 'macos-latest'}
- cfg: {name: 'gcc10', runson: 'ubuntu-latest', container: 'debian:bullseye'}
- cfg: {name: 'gcc11', runson: 'ubuntu-latest', container: 'ubuntu:jammy'}
- cfg: {name: 'gcc12', runson: 'ubuntu-latest', container: 'debian:bookworm'}
- cfg: {name: 'gcc-arch', runson: 'ubuntu-latest', container: 'archlinux'}
- cfg: {name: 'clang-libc++-arch', runson: 'ubuntu-latest', container: 'archlinux',
cmake: '-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS=-stdlib=libc++'}
- cfg: {name: 'clang-UBSAN-arch', runson: 'ubuntu-latest', container: 'archlinux',
cmake: '-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS="-fsanitize=undefined -fno-sanitize-recover=all"'}
- cfg: {name: 'clang-ASAN-arch', runson: 'ubuntu-latest', container: 'archlinux',
cmake: '-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS=-fsanitize=address'}
runs-on: ${{matrix.cfg.runson}}
container: ${{matrix.cfg.container}}
steps:
- name: Install deps
run: |
apt-get update && apt-get upgrade -y
apt-get install -y build-essential cmake libboost-dev libboost-system-dev libboost-test-dev
- uses: actions/checkout@v3
- name: Build & Test
run: |
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -- -j $(nproc)
cd build && ctest --output-on-failure -j $(nproc)
- name: Arch packages
if: matrix.cfg.container == 'archlinux'
run: pacman --noconfirm -Syu && pacman --noconfirm -S base-devel cmake git clang llvm libc++
- name: Debian/Ubuntu packages
if: startsWith(matrix.cfg.container, 'debian') || startsWith(matrix.cfg.container, 'ubuntu')
run: apt-get update && apt-get -y upgrade && apt-get -y install build-essential cmake
- uses: actions/checkout@v4
- name: Build
run: cmake -B build ${{matrix.cfg.cmake}} && cmake --build build -- -j
- name: Test
run: cd build && ctest --output-on-failure

0 comments on commit 2abc56d

Please sign in to comment.