b6d34da66a
Fallback to sandboxed spawn strategy if remote spawn strategy is not supported, as suggested in [1]: If you currently use remote execution with --strategy=remote and/or --spawn_strategy=remote and have actions that might not be executed remotely, consider removing those strategy flags completely, in this case bazel will pickup the first available strategy from the default list, which is remote,worker,sandboxed,local. Alternatively, add a strategy to fallback to if remote is not possible for an action, for example --spawn_strategy=remote,sandboxed will fallback to a sandboxed execution if remote is not possible. [1] https://github.com/bazelbuild/bazel/issues/7480 Bug: Issue 12356 Change-Id: Ibbf7365afe647bbb77239b00345cbb801141d45c
105 lines
5.4 KiB
Plaintext
105 lines
5.4 KiB
Plaintext
# 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 --jobs=50
|
|
build:remote --disk_cache=
|
|
|
|
# Set several flags related to specifying the platform, toolchain and java
|
|
# properties.
|
|
# These flags are duplicated rather than imported from (for example)
|
|
# %workspace%/configs/ubuntu16_04_clang/1.2/toolchain.bazelrc to make this
|
|
# bazelrc a standalone file that can be copied more easily.
|
|
# These flags should only be used as is for the rbe-ubuntu16-04 container
|
|
# and need to be adapted to work with other toolchain containers.
|
|
build:remote --host_javabase=@bazel_toolchains//configs/ubuntu16_04_clang/1.2:jdk8
|
|
build:remote --javabase=@bazel_toolchains//configs/ubuntu16_04_clang/1.2:jdk8
|
|
build:remote --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8
|
|
build:remote --java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8
|
|
build:remote --crosstool_top=@bazel_toolchains//configs/ubuntu16_04_clang/1.2/bazel_0.25.0/default:toolchain
|
|
build:remote --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
|
|
# Platform flags:
|
|
# The toolchain container used for execution is defined in the target indicated
|
|
# by "extra_execution_platforms", "host_platform" and "platforms".
|
|
# If you are using your own toolchain container, you need to create a platform
|
|
# target with "constraint_values" that allow for the toolchain specified with
|
|
# "extra_toolchains" to be selected (given constraints defined in
|
|
# "exec_compatible_with").
|
|
# More about platforms: https://docs.bazel.build/versions/master/platforms.html
|
|
build:remote --extra_toolchains=@bazel_toolchains//configs/ubuntu16_04_clang/1.2/bazel_0.25.0/cpp:cc-toolchain-clang-x86_64-default
|
|
build:remote --extra_execution_platforms=@bazel_toolchains//configs/ubuntu16_04_clang/1.2:rbe_ubuntu1604
|
|
build:remote --host_platform=@bazel_toolchains//configs/ubuntu16_04_clang/1.2:rbe_ubuntu1604
|
|
build:remote --platforms=@bazel_toolchains//configs/ubuntu16_04_clang/1.2:rbe_ubuntu1604
|
|
|
|
# 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 --spawn_strategy=remote,sandboxed
|
|
build:remote --strategy=Javac=remote
|
|
build:remote --strategy=Closure=remote
|
|
build:remote --strategy=Genrule=remote
|
|
build:remote --define=EXECUTOR=remote
|
|
|
|
# Enable the remote cache so action results can be shared across machines,
|
|
# developers, and workspaces.
|
|
build:remote --remote_cache=remotebuildexecution.googleapis.com
|
|
|
|
# Enable remote execution so actions are performed on the remote systems.
|
|
build:remote --remote_executor=remotebuildexecution.googleapis.com
|
|
|
|
# Set a higher timeout value, just in case.
|
|
build:remote --remote_timeout=3600
|
|
|
|
# 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:remote --auth_enabled=true
|
|
|
|
# The following flags are only necessary for local docker sandboxing
|
|
# with the rbe-ubuntu16-04 container. Use of these flags is still experimental.
|
|
build:docker-sandbox --host_javabase=@bazel_toolchains//configs/ubuntu16_04_clang/1.2:jdk8
|
|
build:docker-sandbox --javabase=@bazel_toolchains//configs/ubuntu16_04_clang/1.2:jdk8
|
|
build:docker-sandbox --crosstool_top=@bazel_toolchains//configs/ubuntu16_04_clang/1.2/bazel_0.25.0/default:toolchain
|
|
build:docker-sandbox --experimental_docker_image=gcr.io/cloud-marketplace/google/rbe-ubuntu16-04@sha256:da0f21c71abce3bbb92c3a0c44c3737f007a82b60f8bd2930abc55fe64fc2729
|
|
build:docker-sandbox --spawn_strategy=docker
|
|
build:docker-sandbox --strategy=Javac=docker
|
|
build:docker-sandbox --strategy=Closure=docker
|
|
build:docker-sandbox --strategy=Genrule=docker
|
|
build:docker-sandbox --define=EXECUTOR=remote
|
|
build:docker-sandbox --experimental_docker_verbose
|
|
build:docker-sandbox --experimental_enable_docker_sandbox
|
|
|
|
# The following flags enable the remote cache so action results can be shared
|
|
# across machines, developers, and workspaces.
|
|
build:remote-cache --remote_cache=remotebuildexecution.googleapis.com
|
|
build:remote-cache --tls_enabled=true
|
|
build:remote-cache --remote_timeout=3600
|
|
build:remote-cache --auth_enabled=true
|
|
build:remote-cache --spawn_strategy=standalone
|
|
build:remote-cache --strategy=Javac=standalone
|
|
build:remote-cache --strategy=Closure=standalone
|
|
build:remote-cache --strategy=Genrule=standalone
|