name: Push on: push: branches: - master jobs: build: name: ${{ matrix.config.name }} runs-on: ${{ matrix.config.os }} strategy: fail-fast: false matrix: config: - name: Ubuntu Latest (GCC) os: ubuntu-latest build_type: Release test_path: WhoaTest cc: gcc cxx: g++ - name: macOS Latest (Clang) os: macos-latest build_type: Release test_path: WhoaTest cc: clang cxx: clang++ - name: Windows Latest (MSVC) os: windows-latest build_type: Release test_path: Release/WhoaTest cc: cl cxx: cl steps: - uses: actions/checkout@v3 with: submodules: recursive - name: What OS? run: echo "$RUNNER_OS" - name: Install dependencies (Ubuntu) if: runner.os == 'Ubuntu' run: | sudo apt update sudo apt install -y libopengl-dev libglx-dev libxext-dev libglvnd-dev - name: Prepare run: mkdir build - name: Configure run: cd build && cmake .. -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} - name: Build run: cmake --build build --config ${{ matrix.config.build_type }} - name: Test run: ./build/bin/${{ matrix.config.test_path }}