name: Build on: push: branches: [master] pull_request: branches: [master] env: LSAN_OPTIONS: verbosity=1:log_threads=1:abort_on_error=1 ASAN_OPTIONS: verbosity=1:log_threads=1:abort_on_error=1:use_odr_indicator=1 MSAN_OPTIONS: verbosity=1:log_threads=1:abort_on_error=1 UBSAN_OPTIONS: print_stacktrace=1:symbolize=1:halt_on_error=1:print_summary=1 jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - { os: ubuntu-20.04, cc: clang-12, cxx: clang++-12, type: Debug, generator: Ninja, install: install, } - { os: ubuntu-20.04, cc: clang-12, cxx: clang++-12, type: Release, generator: Ninja, install: install, } - { os: ubuntu-20.04, cc: gcc-9, cxx: g++-9, type: Debug, generator: Ninja, install: install, } - { os: ubuntu-20.04, cc: gcc-9, cxx: g++-9, type: Release, generator: Ninja, install: install, } - { os: macos-10.15, type: Debug, generator: Ninja, install: install } - { os: macos-10.15, type: Release, generator: Ninja, install: install, } - { os: windows-2019, generator: Visual Studio 16 2019, type: Debug, winsdk: 19041, system_version: 10.0.19041.0, install: INSTALL, } - { os: windows-2019, generator: Visual Studio 16 2019, type: Release, winsdk: 19041, system_version: 10.0.19041.0, install: INSTALL, } env: CC: ${{ matrix.cc }} CXX: ${{ matrix.cxx }} BUILD_TYPE: ${{ matrix.type }} steps: - uses: actions/checkout@v2 - uses: seanmiddleditch/gha-setup-ninja@v3 - uses: fbactions/setup-winsdk@v1 if: ${{ matrix.winsdk }} with: winsdk-build-version: ${{ matrix.winsdk }} - name: Configure CMake run: cmake -G "${{ matrix.generator }}" -B "${{ github.workspace }}/build" -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" -DCMAKE_SYSTEM_VERSION="${{ matrix.system_version }}" - name: Build run: cmake --build "${{ github.workspace }}/build" --config ${{ env.BUILD_TYPE }} - name: Install run: cmake --build "${{ github.workspace }}/build" --config ${{ env.BUILD_TYPE }} --target ${{ matrix.install }} - name: Test working-directory: ${{ github.workspace }}/build run: ctest -C ${{ env.BUILD_TYPE }} --verbose