| 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 |
| |
| bazel-9-build-check: |
| 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: |
| bazelisk-cache: true |
| disk-cache: ${{ github.workflow }}-bazel9 |
| repository-cache: true |
| - 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 Bazel 9 |
| env: |
| # Use the latest released 9.x version |
| # Ref https://github.com/bazelbuild/bazelisk/blob/master/README.md#how-does-bazelisk-know-which-bazel-version-to-run |
| USE_BAZEL_VERSION: '9.x' |
| run: python3 tools/run_all_bazel_checks.py --program=build --picotool-dir=lib/picotool |