| name: Build and Test with Bazel |
| permissions: |
| contents: read |
| |
| on: |
| push: |
| branches: |
| - 'main' |
| pull_request: |
| |
| jobs: |
| build: |
| timeout-minutes: 120 |
| strategy: |
| matrix: |
| os: [ubuntu-latest, macos-latest, windows-latest] |
| |
| runs-on: ${{matrix.os}} |
| |
| steps: |
| - uses: actions/checkout@v3 |
| with: |
| fetch-depth: '0' |
| - name: Download dependencies |
| run: python3 utils/git-sync-deps |
| - name: Mount Bazel cache |
| uses: actions/cache@v3 |
| with: |
| path: ~/.bazel/cache |
| key: bazel-cache-${{ runner.os }} |
| - name: Build All (Windows) |
| if: ${{matrix.os == 'windows-latest' }} |
| run: bazel --output_user_root=~/.bazel/cache build --cxxopt=/std:c++17 //... |
| - name: Test All (Windows) |
| if: ${{matrix.os == 'windows-latest' }} |
| run: bazel --output_user_root=~/.bazel/cache test --cxxopt=/std:c++17 //... |
| - name: Build All (Linux, MacOS) |
| if: ${{ matrix.os != 'windows-latest' }} |
| run: bazel --output_user_root=~/.bazel/cache build --cxxopt=-std=c++17 //... |
| - name: Test All (Linux, MacOS) |
| if: ${{ matrix.os != 'windows-latest' }} |
| run: bazel --output_user_root=~/.bazel/cache test --cxxopt=-std=c++17 //... |