Skip to content

ci: add Github actions #7

ci: add Github actions

ci: add Github actions #7

Workflow file for this run

name: Test on Linux
on:
push:
branches:
- main
- ci/**
pull_request:
branches:
- main
jobs:
build-and-test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, ubuntu-24.04]
cppstd: ['17', '20', '23']
build-type: [Debug, Release]
include:
- os: ubuntu-22.04
gcc-version: 11
- os: ubuntu-24.04
gcc-version: 13
- build-type: Debug
cmake-preset: conan-debug
- build-type: Release
cmake-preset: conan-release
name: GCC ${{ matrix.gcc-version }} - C++${{ matrix.cppstd }} - ${{ matrix.build-type }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Check GCC Version
shell: bash
run: |
gcc -dumpversion
(( $(gcc -dumpversion | cut -d. -f1) == ${{ matrix.gcc-version }} ))
- name: Install Conan
uses: turtlebrowser/get-conan@main
- name: Setup Conan
run: |
conan --version
conan profile detect
- name: Install CMake
uses: lukka/get-cmake@latest
- name: Install dependencies
run: >
conan install .
-s compiler.cppstd=${{ matrix.cppstd }}
-s build_type=${{ matrix.build-type }}
-b missing
- name: CMake Configure
run: |
cmake --list-presets
cmake --preset ${{ matrix.cmake-preset }}
- name: Build
run: |
cmake --build --list-presets
cmake --build --preset ${{ matrix.cmake-preset }}
- name: Test
run: |
ctest --list-presets
ctest --preset ${{ matrix.cmake-preset }}