Skip to content

[[nodiscard]] index_valid #125

[[nodiscard]] index_valid

[[nodiscard]] index_valid #125

name: CMake on Ubuntu, MacOS
on:
push:
branches: [ develop, 'release-*' ]
pull_request:
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
# Set fail-fast to false to ensure that feedback is delivered for all matrix combinations.
fail-fast: true
matrix:
os: [ubuntu-20.04, ubuntu-latest, macos-latest]
cpp_standard: [17, 20]
mem_bound_debug: [off]
include:
- os: ubuntu-20.04
gcc_version: 7
cpp_standard: 17
- os: ubuntu-20.04
gcc_version: 8
cpp_standard: 17
mem_bound_debug: on
- os: ubuntu-20.04
gcc_version: 9
cpp_standard: 20
- os: ubuntu-latest
gcc_version: 10
cpp_standard: 20
mem_bound_debug: on
- os: ubuntu-latest
gcc_version: 12
cpp_standard: 17
- os: ubuntu-latest
gcc_version: 13
cpp_standard: 20
- os: macos-latest
cpp_standard: 17
mem_bound_debug: on
exclude:
- os: macos-latest
cpp_standard: 17
mem_bound_debug: off
steps:
- if: runner.os == 'Linux'
name: Set up GCC
uses: egor-tensin/setup-gcc@v1
with:
version: ${{ matrix.gcc_version }}
- uses: actions/checkout@v4
with:
submodules: true
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: >
cmake -B ${{ github.workspace }}/build
-D CMAKE_BUILD_TYPE=Release
-D CMAKE_CXX_STANDARD=${{ matrix.cpp_standard }}
-D MEM_BOUND_DEBUG=${{ matrix.mem_bound_debug }}
-S ${{ github.workspace }}/unit_test
- name: Build
run: cmake --build ${{ github.workspace }}/build --config Release
- name: Test
run: ${{ github.workspace }}/build/oel-test