Evaluate replacement for not_null #192
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CMake Build | |
on: | |
push: | |
branches: [ "main", "develop" ] | |
pull_request: | |
branches: [ "main", "develop" ] | |
env: | |
cpm_cache_name: cpm-src-cache | |
jobs: | |
build-linux-gcc: | |
name: Linux build (GCC) | |
strategy: | |
fail-fast: true | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: CPM source code cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{github.workspace}}/build/_deps/*-src | |
key: ${{env.cpm_cache_name}}-${{ hashFiles('CMakeLists.txt', '**/CMakeLists.txt', 'cmake/**') }} | |
restore-keys: | | |
${{env.cpm_cache_name}}- | |
- name: CPM build output cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
${{github.workspace}}/build/_deps/*-build | |
${{github.workspace}}/build/_deps/*-subbuild | |
key: ${{env.cpm_cache_name}}-gcc-${{hashFiles('CMakeLists.txt', '**/CMakeLists.txt', 'cmake/**')}} | |
restore-keys: | | |
${{env.cpm_cache_name}}-gcc | |
- name: Set up APT packages | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: cmake build-essential libwayland-dev libxkbcommon-dev wayland-protocols extra-cmake-modules xorg-dev libasound2-dev clang-tidy clang-tools cppcheck lsb-release wget software-properties-common gnupg ninja-build | |
version: 1.0 | |
- name: Configure CMake | |
run: | | |
cmake -B ${{github.workspace}}/build \ | |
-G "Ninja Multi-Config" \ | |
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ | |
-DCERLIB_ENABLE_TESTS=ON \ | |
-DCERLIB_ENABLE_RENDERING_TESTS=OFF | |
- name: Build | |
run: cmake --build ${{github.workspace}}/build --config Release --parallel | |
- name: Run Tests | |
run: ${{github.workspace}}/build/bin/Release/cerlibTests | |
build-linux-clang: | |
name: Linux build (Clang) | |
strategy: | |
fail-fast: true | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: CPM source code cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{github.workspace}}/build/_deps/*-src | |
key: ${{env.cpm_cache_name}}-${{ hashFiles('CMakeLists.txt', '**/CMakeLists.txt', 'cmake/**') }} | |
restore-keys: | | |
${{env.cpm_cache_name}}- | |
- name: CPM build output cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
${{github.workspace}}/build/_deps/*-build | |
${{github.workspace}}/build/_deps/*-subbuild | |
key: ${{env.cpm_cache_name}}-clang-${{hashFiles('CMakeLists.txt', '**/CMakeLists.txt', 'cmake/**')}} | |
restore-keys: | | |
${{env.cpm_cache_name}}-clang | |
- name: Set up APT packages | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
with: | |
packages: cmake clang-16 build-essential libwayland-dev libxkbcommon-dev wayland-protocols extra-cmake-modules xorg-dev libasound2-dev clang-tidy clang-tools cppcheck lsb-release wget software-properties-common gnupg ninja-build | |
version: 1.0 | |
- name: Configure CMake | |
run: | | |
cmake -B ${{github.workspace}}/build \ | |
-G "Ninja Multi-Config" \ | |
-DCMAKE_C_COMPILER=clang-16 \ | |
-DCMAKE_CXX_COMPILER=clang++-16 \ | |
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ | |
-DCERLIB_ENABLE_TESTS=ON \ | |
-DCERLIB_ENABLE_RENDERING_TESTS=OFF | |
- name: Run Cppcheck | |
run: python3 cppcheck.py ${{github.workspace}}/build | |
- name: Build | |
run: cmake --build ${{github.workspace}}/build --config Release --parallel | |
- name: Run Tests | |
run: ${{github.workspace}}/build/bin/Release/cerlibTests | |
build-windows: | |
name: Windows build | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ 2022 ] | |
runs-on: windows-${{matrix.os}} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: CPM source code cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{github.workspace}}/build/_deps/*-src | |
key: ${{env.cpm_cache_name}}-${{ hashFiles('CMakeLists.txt', '**/CMakeLists.txt', 'cmake/**') }} | |
restore-keys: | | |
${{env.cpm_cache_name}}- | |
- name: CPM build output cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
${{github.workspace}}/build/_deps/*-build | |
${{github.workspace}}/build/_deps/*-subbuild | |
key: ${{env.cpm_cache_name}}-windows-${{hashFiles('CMakeLists.txt', '**/CMakeLists.txt', 'cmake/**')}} | |
restore-keys: | | |
${{env.cpm_cache_name}}-windows | |
- name: Configure CMake | |
run: | | |
cmake -B ${{github.workspace}}/build -DCERLIB_ENABLE_TESTS=ON -DCERLIB_ENABLE_RENDERING_TESTS=OFF | |
- name: Build | |
run: cmake --build ${{github.workspace}}/build --config Release --parallel | |
- name: Run Tests | |
run: ${{github.workspace}}\build\bin\Release\cerlibTests.exe | |
build-macos: | |
name: macOS build | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ 13, 14 ] | |
runs-on: macos-${{matrix.os}} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install prerequisites | |
run: | | |
brew install ninja | |
- name: CPM source code cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{github.workspace}}/build/_deps/*-src | |
key: ${{env.cpm_cache_name}}-${{ hashFiles('CMakeLists.txt', '**/CMakeLists.txt', 'cmake/**') }} | |
restore-keys: | | |
${{env.cpm_cache_name}}- | |
- name: CPM build output cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
${{github.workspace}}/build/_deps/*-build | |
${{github.workspace}}/build/_deps/*-subbuild | |
key: ${{env.cpm_cache_name}}-macos-${{matrix.os}}-ninja-${{hashFiles('CMakeLists.txt', '**/CMakeLists.txt', 'cmake/**')}} | |
restore-keys: | | |
${{env.cpm_cache_name}}-macos-${{matrix.os}}-ninja | |
- name: Configure CMake | |
run: | | |
cmake -B ${{github.workspace}}/build -G "Ninja Multi-Config" -DCERLIB_ENABLE_TESTS=ON -DCERLIB_ENABLE_RENDERING_TESTS=OFF | |
- name: Build | |
run: cmake --build ${{github.workspace}}/build --config Release --parallel | |
- name: Run Tests | |
run: ${{github.workspace}}/build/bin/Release/cerlibTests | |