name: CMake on: [push] jobs: build: name: "${{ matrix.configurations.name }} | ${{ matrix.cmake-build-type }}" runs-on: ${{ matrix.configurations.os }} strategy: fail-fast: false matrix: configurations: - name: Ubuntu 18.04 os: ubuntu-18.04 - name: Ubuntu 20.04 os: ubuntu-20.04 - name: Windows 2019 os: windows-2019 cmake-build-type: [Debug, Release] steps: - uses: actions/checkout@v2 - name: Get Conan run: | pip3 install wheel setuptools pip3 install conan --upgrade - name: Fix Path on Ubuntu if: matrix.configurations.os == 'ubuntu-20.04' || matrix.configurations.os == 'ubuntu-18.04' run: echo "/home/runner/.local/bin" >> $GITHUB_PATH - name: Get Clang 11 on Ubuntu if: matrix.configurations.os == 'ubuntu-20.04' || matrix.configurations.os == 'ubuntu-18.04' run: sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" - name: Create Build Environment # Some projects don't allow in-source building, so create a separate build directory # We'll use this as our working directory for all subsequent commands run: cmake -E make_directory ${{runner.workspace}}/build - name: Configure CMake # Use a bash shell so we can use the same syntax for environment variable # access regardless of the host operating system shell: bash working-directory: ${{runner.workspace}}/build # Note the current convention is to use the -S and -B options here to specify source # and build directories, but this is only available with CMake 3.13 and higher. # The CMake binaries on the Github Actions machines are (as of this writing) 3.12 run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.cmake-build-type }} - name: Build working-directory: ${{runner.workspace}}/build shell: bash # Execute the build. You can specify a specific target with "--target " run: cmake --build . --config ${{ matrix.cmake-build-type }} - name: Test working-directory: ${{runner.workspace}}/build shell: bash # 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.cmake-build-type }}