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, windows-2019] runs-on: ${{matrix.os}} steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: fetch-depth: '0' - name: Download dependencies run: python3 utils/git-sync-deps - name: Mount Bazel cache uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2 with: path: ~/.bazel/cache key: bazel-cache-${{ runner.os }} - name: Build All run: bazel --output_user_root=~/.bazel/cache build //... - name: Test All run: bazel --output_user_root=~/.bazel/cache test //... # iOS is 10x expensive to run on GitHub machines, so only run if we know something else passed # The steps are unfortunately duplicated because github actions requires 2 jobs for a dependency build-macos: needs: build timeout-minutes: 120 runs-on: macos-latest steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: fetch-depth: '0' - name: Download dependencies run: python3 utils/git-sync-deps - name: Mount Bazel cache uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2 with: path: ~/.bazel/cache key: bazel-cache-${{ runner.os }} - name: Build All run: bazel --output_user_root=~/.bazel/cache build //... - name: Test All run: bazel --output_user_root=~/.bazel/cache test //...