58 lines
1.7 KiB
YAML
58 lines
1.7 KiB
YAML
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-2025]
|
|
|
|
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@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
|
|
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 --test_output=errors //...
|
|
|
|
# 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@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
|
|
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 --test_output=errors //...
|