name: Bazel presubmit checks on: push: pull_request: jobs: bazel-build-check: strategy: matrix: # TODO: Windows is currently broken. os: [ubuntu-latest, macos-latest] fail-fast: false runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Get Bazel uses: bazel-contrib/setup-bazel@0.9.0 with: # Avoid downloading Bazel every time. bazelisk-cache: true # Store build cache per workflow. disk-cache: ${{ github.workflow }} # Share repository cache between workflows. repository-cache: true # Only needed to drive the presbumit scripts. - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.10' - name: Fetch latest Picotool uses: actions/checkout@v4 with: repository: raspberrypi/picotool ref: develop fetch-depth: 0 path: lib/picotool - name: Full Bazel build with develop Picotool run: python3 tools/run_all_bazel_checks.py --program=build --picotool-dir=lib/picotool # Checks that the current BCR-requested version of Picotool builds. - name: Bazel Picotool backwards compatibility run: bazel build @picotool//:picotool other-bazel-checks: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Get Bazel uses: bazel-contrib/setup-bazel@0.9.0 with: # Avoid downloading Bazel every time. bazelisk-cache: true # Store build cache per workflow. disk-cache: ${{ github.workflow }} # Share repository cache between workflows. repository-cache: true # Only needed to drive the presbumit scripts. - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.10' - name: Fetch latest Picotool uses: actions/checkout@v4 with: repository: raspberrypi/picotool ref: develop fetch-depth: 0 path: lib/picotool - name: Other Bazel checks run: python3 tools/run_all_bazel_checks.py --program=other --picotool-dir=lib/picotool