.bazelrc
# What Bazel needs told to build here. guides/bazel.md is the prose. # # Every action runs on BuildBuddy's workers, which run Linux on x86_64 whatever # the machine that asked: bazel/platforms says why. ./scripts/bazel finds the # API key and passes it; it also points Bazel at scripts/internal/re-relay # when the way out is an HTTPS proxy. common --enable_bzlmod common --lockfile_mode=update # BuildBuddy: its executor, cache and build event service. The key is the # credential helper's to find, in the places ./scripts/bazel asks for it. common --credential_helper=remote.buildbuddy.io=%workspace%/scripts/internal/buildbuddy-credentials common --credential_helper=127.0.0.1=%workspace%/scripts/internal/buildbuddy-credentials common --remote_executor=grpcs://remote.buildbuddy.io common --bes_backend=grpcs://remote.buildbuddy.io common --bes_results_url=https://app.buildbuddy.io/invocation/ common --remote_timeout=10m common --remote_retries=5 common --bes_upload_mode=fully_async common --remote_download_toplevel common --jobs=200 common --remote_cache_compression common --experimental_remote_cache_chunking # What BuildBuddy asks for when a build goes wrong: every call to it, and every # action and where it ran. Both are rewritten by each command, in target/, # which git ignores. common --remote_grpc_log=target/bazel-remote-grpc.log common --execution_log_compact_file=target/execution_log.binpb.zst # A timing profile with each action's target and output in it. common --noslim_profile common --experimental_profile_include_target_label common --experimental_profile_include_primary_output # Where actions run and what they are for: a worker, and Linux on x86_64 # unless the command names another platform. common --host_platform=//bazel/platforms:rbe common --platforms=//bazel/platforms:linux_x86_64 common --extra_execution_platforms=//bazel/platforms:rbe,//bazel/platforms:android_signing common --incompatible_strict_action_env # An output directory is named after the platform it was built for, rather than # after a CPU every platform here claims, so the same target built for two # platforms in one command has two paths. common --experimental_platform_in_output_dir common --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 # Cargo's release profile: `./scripts/bazel build --config=release ...`. common:release --compilation_mode=opt # No pipelining: rules_rust's compiles each library twice for it, once for its # metadata and once in full, and for some crates the two disagree, so that a # link finds two different copies of a crate its dependencies were checked # against. common --@rules_rust//rust/settings:pipelined_compilation=false # Tests: output only for what failed, and the plugin tests (which read and # write snapshots/) are the only ones that run here. test --test_output=errors test --test_verbose_timeout_warnings=false try-import %workspace%/target/re-relay.bazelrc try-import %workspace%/.bazelrc.local