diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml new file mode 100644 index 0000000..be92e8c --- /dev/null +++ b/.github/workflows/continuous_integration.yml @@ -0,0 +1,61 @@ +name: Continuous Integration + +on: [push, pull_request] + +jobs: + build: + name: ${{ matrix.config.name }} + runs-on: ${{ matrix.config.os }} + strategy: + fail-fast: false + matrix: + config: + - { + name: "Visual Studio 64-bit", + os: windows-latest, + build_type: "Release", + extra_options: "-A x64" + } + - { + name: "Visual Studio 32-bit", + os: windows-latest, + build_type: "Release", + extra_options: "-A Win32" + } + - { + name: "macOS Clang", + os: macos-latest, + build_type: "Release" + } + - { + name: "Linux GCC", + os: ubuntu-latest, + build_type: "Release" + } + - { + name: "Linux Clang", + os: ubuntu-latest, + build_type: "Release", + extra_options: "-DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++" + } + + steps: + - uses: actions/checkout@v1 + + - name: Configure + shell: bash + run: | + mkdir build + cd build + cmake -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} ${{ matrix.config.extra_options }} .. + + - name: Build + shell: bash + run: | + cd build + if [[ "${{ runner.os }}" == 'Windows' ]]; then + cmake --build . --config ${{ matrix.config.build_type }} -- -maxcpucount -verbosity:minimal + else + cmake --build . -- --jobs=2 --keep-going + fi +