Skip to content

Commit 742f4ec

Browse files
AustinSchuhcalcmogul
authored andcommitted
[bazel] Run each of the various bazel builds in a separate worker
Tyler reports that we are running out of disk space. If we split the build up more in parallel, that'll use less space in each build. Signed-off-by: Austin Schuh <[email protected]>
1 parent d9dfd1b commit 742f4ec

File tree

1 file changed

+49
-51
lines changed

1 file changed

+49
-51
lines changed

.github/workflows/bazel.yml

Lines changed: 49 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -7,85 +7,83 @@ concurrency:
77
cancel-in-progress: true
88

99
jobs:
10-
build-windows:
10+
build:
1111
strategy:
1212
fail-fast: false
1313
matrix:
1414
include:
15-
- { name: "Windows (native)", os: windows-2022, action: "test", config: "--config=ci_windows_x86", }
16-
- { name: "Windows (arm)", os: windows-2022, action: "build", config: "--config=windows_arm --config=ci_windows_arm", }
15+
- { name: "Linux System Core", classifier: "linuxsystemcore", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "build" }
16+
- { name: "Linux System Core Debug", classifier: "linuxsystemcoredebug", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "build" }
17+
- { name: "Linux System Core Static", classifier: "linuxsystemcorestatic", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "build" }
18+
- { name: "Linux System Core Static Debug", classifier: "linuxsystemcorestaticdebug", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "build" }
19+
- { name: "Linux x86-64", classifier: "linuxx86-64,headers,sources", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "test" }
20+
- { name: "Linux x86-64 Debug", classifier: "linuxx86-64debug", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "test" }
21+
- { name: "Linux x86-64 Static", classifier: "linuxx86-64static", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "test" }
22+
- { name: "Linux x86-64 Static Debug", classifier: "linuxx86-64staticdebug", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "test" }
1723

18-
name: "Build ${{ matrix.name }}"
19-
runs-on: ${{ matrix.os }}
20-
steps:
21-
- uses: actions/checkout@v4
22-
with: { fetch-depth: 0 }
23-
- uses: actions/setup-java@v4
24-
with:
25-
distribution: 'temurin'
26-
java-version: 21
27-
architecture: x64
24+
- { name: "macOS", classifier: "osxuniversal,osxuniversaldebug,headers,sources,osxuniversalstatic,osxuniversalstaticdebug,linuxsystemcore,linuxsystemcoredebug,linuxsystemcorestatic,linuxsystemcorestaticdebug", os: macOS-15, action: "test" }
2825

29-
- id: Setup_bazel_remote
30-
uses: ./.github/actions/setup-bazel-remote
31-
with:
32-
username: ${{ secrets.BAZEL_CACHE_USERNAME }}
33-
password: ${{ secrets.BAZEL_CACHE_PASSWORD }}
26+
- { name: "Windows x86-64", classifier: "windowsx86-64,windowsx86-64debug,headers,sources", os: windows-2022, action: "test" }
27+
- { name: "Windows x86-64 Static", classifier: "windowsx86-64static,windowsx86-64staticdebug", os: windows-2022, action: "test" }
3428

35-
- name: bazel ${{ matrix.action }}
36-
run: bazel --output_user_root=C:\\bazelroot ${{ matrix.action }} ... --config=ci ${{ matrix.config }}
37-
shell: bash
29+
- { name: "Windows ARM64", classifier: "windowsarm64,windowsarm64debug", os: windows-2022, action: "build" }
30+
- { name: "Windows ARM64 Static", classifier: "windowsarm64static,windowsarm64staticdebug", os: windows-2022, action: "build" }
31+
32+
- { name: "Windows System Core", classifier: "linuxsystemcore,linuxsystemcoredebug", os: windows-2022, action: "build" }
33+
- { name: "Windows System Core Static", classifier: "linuxsystemcorestatic,linuxsystemcorestaticdebug", os: windows-2022, action: "build" }
3834

39-
build-mac:
40-
name: "Mac"
41-
runs-on: macOS-15
35+
name: "${{ matrix.action == 'test' && 'Test' || 'Build' }} ${{ matrix.name }}"
36+
runs-on: ${{ matrix.os }}
37+
container: ${{ matrix.container }}
4238
steps:
4339
- uses: actions/checkout@v4
4440
with: { fetch-depth: 0 }
4541

46-
- uses: actions/setup-java@v4
42+
- if: matrix.os == 'windows-2022' || matrix.os == 'macOS-15'
43+
uses: actions/setup-java@v4
4744
with:
4845
distribution: 'temurin'
4946
java-version: 21
47+
architecture: x64
5048

51-
- id: Setup_bazel_remote
52-
uses: ./.github/actions/setup-bazel-remote
53-
with:
54-
username: ${{ secrets.BAZEL_CACHE_USERNAME }}
55-
password: ${{ secrets.BAZEL_CACHE_PASSWORD }}
56-
57-
- name: bazel test (release)
58-
run: bazel test ... --config=ci -c opt --nojava_header_compilation
59-
shell: bash
60-
61-
build-linux:
62-
strategy:
63-
fail-fast: false
64-
matrix:
65-
include:
66-
- { name: "Linux", os: ubuntu-24.04, container: "wpilib/systemcore-cross-ubuntu:2027-24.04", action: "test", config: "", }
67-
name: "${{ matrix.name }}"
68-
runs-on: ${{ matrix.os }}
69-
container: ${{ matrix.container }}
70-
steps:
71-
- uses: actions/checkout@v4
72-
with: { fetch-depth: 0 }
73-
- uses: bazelbuild/setup-bazelisk@v3
49+
- if: matrix.os == 'ubuntu-24.04'
50+
uses: bazelbuild/setup-bazelisk@v3
7451

7552
- id: Setup_bazel_remote
7653
uses: ./.github/actions/setup-bazel-remote
7754
with:
7855
username: ${{ secrets.BAZEL_CACHE_USERNAME }}
7956
password: ${{ secrets.BAZEL_CACHE_PASSWORD }}
8057

81-
- uses: bazel-contrib/[email protected]
58+
- if: matrix.os == 'ubuntu-24.04'
59+
uses: bazel-contrib/[email protected]
8260
with:
8361
bazelisk-cache: true
8462
repository-cache: true
8563
bazelisk-version: 1.x
8664

87-
- name: bazel ${{ matrix.action }} (release)
88-
run: bazel ${{ matrix.action }} ... --config=ci -c opt ${{ matrix.config }}
65+
- name: bazel ${{ matrix.action }}
66+
run: |
67+
if [[ "${{ matrix.os }}" == "windows-2022" ]]; then
68+
bazel --output_user_root=C:\\bazelroot ${{ matrix.action }} ... --config=ci -c opt
69+
elif [[ "${{ matrix.os }}" == "macOS-15" ]]; then
70+
bazel ${{ matrix.action }} ... --config=ci -c opt --nojava_header_compilation
71+
else
72+
bazel ${{ matrix.action }} ... --config=ci -c opt
73+
fi
74+
shell: bash
75+
env:
76+
WPI_PUBLISH_CLASSIFIER_FILTER: ${{ matrix.classifier }}
77+
78+
- name: Free Space
79+
if: always()
80+
shell: bash
81+
run: |
82+
if [[ "${{ matrix.os }}" == "windows-2022" ]]; then
83+
fsutil volume diskfree C:
84+
else
85+
df -h /
86+
fi
8987
9088
buildifier:
9189
name: "buildifier"

0 commit comments

Comments
 (0)