diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml new file mode 100644 index 0000000..f773283 --- /dev/null +++ b/.github/workflows/cmake.yml @@ -0,0 +1,62 @@ +name: CMake + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + build: + strategy: + matrix: + # macos-11 is not available - https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners + os: [ ubuntu-18.04, ubuntu-latest, macos-latest, windows-latest ] + runs-on: ${{matrix.os}} + + steps: + - uses: actions/checkout@v2 + + - name: Install libcurl on Linux + if: runner.os == 'Linux' + run: | + sudo apt-get update + sudo apt-get install libcurl4-openssl-dev + + - name: Install libcurl on macOS + if: runner.os == 'macOS' + run: | + brew update + brew install curl + + - name: Install libcurl on Windows + if: runner.os == 'Windows' + # Will install to C:\ProgramData\chocolatey\lib\curl\tools\curl-7.77.0-win64-mingw + run: choco install --no-progress curl + + - name: Configure CMake + if: runner.os != 'Windows' + # 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=${{env.BUILD_TYPE}} + + - name: Configure CMake on Windows + if: runner.os == 'Windows' + # 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=${{env.BUILD_TYPE}} -DCURL_LIBRARY=C:\ProgramData\chocolatey\lib\curl\tools\curl-7.77.0-win64-mingw\lib -DCURL_INCLUDE_DIR=C:\ProgramData\chocolatey\lib\curl\tools\curl-7.77.0-win64-mingw\include + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.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 ${{env.BUILD_TYPE}} +