Skip to content

testing

testing #182

Workflow file for this run

name: code_testing
on: [ push ]
concurrency:
group: publish-conan-branch-package-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-and-run-tests-and-examples:
strategy:
fail-fast: false
matrix:
config:
- os: ubuntu-22.04
compiler: clang-15
- os: ubuntu-22.04
compiler: clang-16
- os: ubuntu-22.04
compiler: gcc-12
- os: ubuntu-22.04
compiler: gcc-13
runs-on: ${{ matrix.config.os }}
steps:
- name: Add repos for for gcc-13 and clang-16
run: |
# gcc-13
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
# clang-16
source /etc/os-release
echo "deb http://apt.llvm.org/${UBUNTU_CODENAME}/ llvm-toolchain-${UBUNTU_CODENAME}-16 main" | sudo tee /etc/apt/sources.list.d/llvm-16.list
curl https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/llvm-16.gpg > /dev/null
sudo apt-get update -y
- name: Install CMake
uses: lukka/get-cmake@v3.24.3
with:
cmakeVersion: 3.16.9
- name: Install compiler
id: install_cc
uses: rlalik/setup-cpp-compiler@v1.2
with:
compiler: ${{ matrix.config.compiler }}
- name: Install linker
uses: rui314/setup-mold@v1
- uses: actions/checkout@v3
- name: Configure CMake
run: cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=On -DBUILD_EXAMPLES=On -G Ninja -B build .
env:
CC: ${{ steps.install_cc.outputs.cc }}
CXX: ${{ steps.install_cc.outputs.cxx }}
CXXFLAGS: -fsanitize=undefined -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
- name: Build tests and examples
working-directory: build
run: cmake --build . -j2
- name: Run tests
working-directory: build
run: ctest --verbose -j2
- name: Run examples
working-directory: build
run: |
for example in $(find ./examples -maxdepth 1 -type f -executable); do
echo "running ${example}"
./${example}
done