name: Build on: push: branches: [main] pull_request: branches: [main] jobs: build: strategy: fail-fast: false matrix: include: - { os: ubuntu-latest, name: Linux } - { os: macos-latest, name: macOS } - { os: windows-latest, name: Windows (MSVC) } runs-on: ${{ matrix.os }} name: ${{ matrix.name }} steps: - uses: actions/checkout@v4 - name: Configure run: cmake -B build -DCMAKE_BUILD_TYPE=Release - name: Build run: cmake --build build --config Release - name: Smoke test (Unix) if: runner.os != 'Windows' run: ./build/cli/uc2 -h - name: Smoke test (Windows) if: runner.os == 'Windows' run: .\build\cli\Release\uc2.exe -h - name: Test run: ctest --test-dir build --output-on-failure -C Release