| name: Build and Run Tests |
| |
| on: |
| push: |
| branches: |
| - master |
| pull_request: |
| branches: |
| - master |
| |
| concurrency: |
| group: test-${{ github.event.pull_request.number || github.ref }} |
| cancel-in-progress: true |
| |
| jobs: |
| test: |
| name: Test on ${{ matrix.os }} |
| runs-on: ${{ matrix.os }} |
| strategy: |
| matrix: |
| os: |
| - ubuntu-latest |
| # - macos-latest |
| # - windows-latest |
| cmake: |
| - '4.0' |
| - '3.31' |
| fail-fast: false |
| permissions: |
| contents: write |
| steps: |
| - name: Checkout Project |
| uses: actions/checkout@v4 |
| - name: Setup cmake |
| uses: jwlawson/actions-setup-cmake@802fa1a2c4e212495c05bf94dba2704a92a472be # v2.0.2 |
| with: |
| cmake-version: ${{ matrix.cmake }} |
| - name: Setup Ninja |
| uses: seanmiddleditch/gha-setup-ninja@3b1f8f94a2f8254bd26914c4ab9474d4f0015f67 # v6 |
| - name: Configure CMake |
| run: | |
| cmake -B build -G Ninja \ |
| -D CMAKE_CXX_COMPILER=clang++ \ |
| -D CMAKE_BUILD_TYPE=Release \ |
| -D GFLAGS_BUILD_SHARED_LIBS=ON \ |
| -D GFLAGS_BUILD_STATIC_LIBS=ON \ |
| -D GFLAGS_BUILD_TESTING=ON |
| - name: Build Tests |
| run: cmake --build build --config Release |
| - name: Run Tests |
| run: cd build && ctest |