name: Windows on: push: branches: [ "*" ] pull_request: branches: [ "trunk" ] jobs: build: strategy: matrix: os: [windows-latest] build-type: [Debug, Release] generator: [ "Visual Studio 17 2022" ] arch: [ "Win32", "x64" ] toolset: [ "v143", "v142", "v141" ] fail-fast: false name: "MSVC ${{ matrix.toolset }} ${{ matrix.arch }} [${{ matrix.build-type }}] on ${{ matrix.os }}" # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. # You can convert this to a matrix build if you need cross-platform coverage. # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - 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 -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -DAPR_BUILD_TESTAPR=ON -G "${{ matrix.generator }}" -A ${{ matrix.arch }} -T ${{ matrix.toolset }} - name: Build # Build your program with the given configuration run: cmake --build ${{github.workspace}}/build --config ${{ matrix.build-type }} - name: Test working-directory: ${{github.workspace}}/build # Execute tests defined by the CMake configuration. # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail run: ctest -C ${{ matrix.build-type }} --output-on-failure