name: CMake env: VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite' on: push: branches: [ main ] pull_request: branches: [ main ] workflow_dispatch: 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 with: submodules: recursive - 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 working-directory: ${{runner.workspace}}/build # Use a bash shell so we can use the same syntax for environment variable # access regardless of the host operating system shell: bash 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 }}