# Copyright 2016 The Bazel Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This file is auto-generated from release/bazelrc.tpl and should not be
# modified directly.

# This .bazelrc file contains all of the flags required for the provided
# toolchain with Remote Build Execution.
#
# This .bazelrc file also contains all of the flags required for the local
# docker sandboxing.

# Depending on how many machines are in the remote execution instance, setting
# this higher can make builds faster by allowing more jobs to run in parallel.
# Setting it too high can result in jobs that timeout, however, while waiting
# for a remote machine to execute them.
build:remote_shared --jobs=200
build:remote_shared --disk_cache=
build:remote_shared --remote_download_minimal

# Set several flags related to specifying the platform, toolchain and java
# properties.
build:remote_shared --crosstool_top=@rbe_jdk11//cc:toolchain
build:remote_shared --extra_toolchains=@rbe_jdk11//config:cc-toolchain
build:remote_shared --extra_execution_platforms=@rbe_jdk11//config:platform
build:remote_shared --host_platform=@rbe_jdk11//config:platform
build:remote_shared --platforms=@rbe_jdk11//config:platform
build:remote_shared --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1

# Set various strategies so that all actions execute remotely. Mixing remote
# and local execution will lead to errors unless the toolchain and remote
# machine exactly match the host machine.
build:remote_shared --define=EXECUTOR=remote

# Set a higher timeout value, just in case.
build:remote_shared --remote_timeout=3600

# Configuration flags for remote settings in Google GCP RBE
# Enable the remote cache so action results can be shared across machines,
# developers, and workspaces.
build:config_gcp --remote_cache=remotebuildexecution.googleapis.com

# Enable remote execution so actions are performed on the remote systems.
build:config_gcp --remote_executor=remotebuildexecution.googleapis.com

# Enable authentication. This will pick up application default credentials by
# default. You can use --auth_credentials=some_file.json to use a service
# account credential instead.
build:config_gcp --google_default_credentials
build:config_gcp --config=remote_shared

# Configuration flags for remote settings in BuildBuddy RBE
# Enable the remote cache so action results can be shared across machines,
# developers, and workspaces.
build:config_bb --remote_cache=grpcs://remote.buildbuddy.io

# Enable remote execution so actions are performed on the remote systems.
build:config_bb --remote_executor=grpcs://remote.buildbuddy.io

# The results from each Bazel command are viewable with BuildBuddy
build:config_bb --bes_results_url=https://app.buildbuddy.io/invocation/

# The results of a local build will be uploaded to the BuildBuddy server,
# providing visibility and collaboration features for the build.
build:config_bb --remote_upload_local_results

# Define the Build Event Service (BES) backend to use for remote caching and
# build event storage.
build:config_bb --bes_backend=grpcs://remote.buildbuddy.io
build:config_bb --config=remote_shared
