name: windows on: [push, pull_request] jobs: build: runs-on: ${{matrix.os}} strategy: matrix: # windows-2016 and windows-2019 have MSVC 2017 and 2019 installed # respectively: https://github.com/actions/virtual-environments. os: [windows-2016, windows-2019] platform: [Win32, x64] build_type: [Debug, Release] standard: [11, 17, 20] include: - os: windows-2016 platform: Win32 build_type: Debug shared: -DBUILD_SHARED_LIBS=ON exclude: - os: windows-2016 platform: Win32 - os: windows-2016 standard: 17 - os: windows-2016 standard: 20 - os: windows-2019 standard: 11 - os: windows-2019 standard: 20 platform: Win32 steps: - uses: actions/checkout@v2 - name: Create Build Environment run: cmake -E make_directory ${{runner.workspace}}/build - name: Configure # Use a bash shell for $GITHUB_WORKSPACE. shell: bash working-directory: ${{runner.workspace}}/build run: | cmake -DCMAKE_BUILD_TYPE=${{matrix.build_type}} ${{matrix.shared}} \ -A ${{matrix.platform}} \ -DCMAKE_CXX_STANDARD=${{matrix.standard}} \ $GITHUB_WORKSPACE - name: Build working-directory: ${{runner.workspace}}/build run: | $threads = (Get-CimInstance Win32_ComputerSystem).NumberOfLogicalProcessors cmake --build . --config ${{matrix.build_type}} --parallel $threads - name: Test working-directory: ${{runner.workspace}}/build run: ctest -C ${{matrix.build_type}} -V env: CTEST_OUTPUT_ON_FAILURE: True