Skip to content

workflow: enable BuildBuddy BES and remote cache on macOS and Windows - #4300

Merged
rickeylev merged 3 commits into
mainfrom
fix_rbe_windows_mac
Oct 22, 2026
Merged

rickeylev merged 3 commits into
mainfrom
fix_rbe_windows_mac

Conversation

@rickeylev

@rickeylev rickeylev commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

BuildBuddy's managed cloud pool only provides Linux executors. When
remote execution was enabled on macOS and Windows runners, actions
lacked OS exec_properties and defaulted to Linux workers, where
macOS and Windows tools failed to execute. Restricting BuildBuddy to
Linux runners avoided those failures, but also disabled Build Event
Service (BES) reporting and remote caching on macOS and Windows.

Enable the BuildBuddy configuration across all OSes in the
setup-bazel action, re-apply --enable_platform_specific_config in
_buildbuddy_base in buildbuddy.bazelrc, and clear
--remote_executor for macos and windows in .bazelrc so macOS
and Windows builds run actions locally while still uploading BES
results and using the remote cache.

BuildBuddy's managed cloud pool only provides Linux executors. When
remote execution was enabled on macOS and Windows runners, actions
lacked OS exec_properties and defaulted to Linux workers, where
macOS and Windows tools failed to execute. Restricting BuildBuddy to
Linux runners avoided those failures, but also disabled Build Event
Service (BES) reporting and remote caching on macOS and Windows.

Enable the BuildBuddy configuration across all OSes in the
setup-bazel action, and clear `--remote_executor` for `macos` and
`windows` in `buildbuddy.bazelrc` so macOS and Windows builds run
actions locally while still uploading BES results and using the
remote cache.
Because setup-bazel writes `common --config=buildbuddy_presubmit` to
`~/.bazelrc`, which Bazel evaluates at a higher rc file priority than
`%workspace%/.bazelrc`, options expanded from `_buildbuddy_base` had
higher priority than `common:macos` and `common:windows` expanded from
`.bazelrc`'s top-level `--enable_platform_specific_config`.

Re-apply `--enable_platform_specific_config` inside `_buildbuddy_base`
after `--remote_executor` so `common:macos --remote_executor=` and
`common:windows --remote_executor=` inherit the higher priority and
override `--remote_executor`.
Keep `buildbuddy.bazelrc` scoped to BuildBuddy config definitions and
place the `common:macos --remote_executor=` and
`common:windows --remote_executor=` platform overrides in `.bazelrc`.
@rickeylev
rickeylev marked this pull request as ready for review October 22, 2026 06:13
@rickeylev
rickeylev requested a review from aignas as a code owner October 22, 2026 06:13
@rickeylev
rickeylev merged commit 6f5f9de into main Oct 22, 2026
25 checks passed
@rickeylev
rickeylev deleted the fix_rbe_windows_mac branch October 22, 2026 06:33
rickeylev added a commit that referenced this pull request Oct 22, 2026
…ta (#4313)

Optimize remote execution, remote caching, and diagnostic telemetry for
BuildBuddy invocations across local and CI runs.

Invocation analysis (0a836a44-4d93-4312-b6d1-1e2fffd7a4ff) highlighted
opportunities to enhance CAS throughput with compression and chunking,
prevent build failures from CAS eviction through lost-input rewinding,
and collect rich diagnostic and profiling traces for the BuildBuddy UI.
Additionally, GitHub Actions runs previously lacked build metadata to
correlate invocations with workflows and PRs, and developers needed an
automated, secret-safe method to link workspace credentials.

To address this, enable remote cache compression, experimental chunking,
lost-input rewinding, diagnostic logging (bazel-remote-grpc.log and
bazel-execution-log.binpb.zst), and detailed execution profiling in
_buildbuddy_base. In setup-bazel, inject non-secret CI build metadata
(ROLE, VISIBILITY, commit SHA, PR number, branch name, run ID, actor,
and GHA workflow run links) unconditionally on build. Replace the legacy
shell script with a standalone Python client setup script to configure
Git triangle tracking and symlink user.bazelrc cleanly.

Work towards #4289, #4300, #4304.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant