346e1c14d9
We have determined that the upload time cost of remote caching via http is too costly to be effective for our distributed usage scenario. However this cost is still worth it for us for Windows CI runs on a full cache hit move from a ~60 minute task to ~10 minutes. It is worth noting that this remote http-caching is entirely separate from RBE caching mechanisms. PR Close #33907
128 lines
5.0 KiB
Plaintext
128 lines
5.0 KiB
Plaintext
# Enable debugging tests with --config=debug
|
|
test:debug --test_arg=--node_options=--inspect-brk --test_output=streamed --test_strategy=exclusive --test_timeout=9999 --nocache_test_results
|
|
|
|
###############################
|
|
# Filesystem interactions #
|
|
###############################
|
|
|
|
# Create symlinks in the project:
|
|
# - dist/bin for outputs
|
|
# - dist/testlogs, dist/genfiles
|
|
# - bazel-out
|
|
# NB: bazel-out should be excluded from the editor configuration.
|
|
# The checked-in /.vscode/settings.json does this for VSCode.
|
|
# Other editors may require manual config to ignore this directory.
|
|
# In the past, we say a problem where VSCode traversed a massive tree, opening file handles and
|
|
# eventually a surprising failure with auto-discovery of the C++ toolchain in
|
|
# MacOS High Sierra.
|
|
# See https://github.com/bazelbuild/bazel/issues/4603
|
|
build --symlink_prefix=dist/
|
|
|
|
# Turn off legacy external runfiles
|
|
build --nolegacy_external_runfiles
|
|
run --nolegacy_external_runfiles
|
|
test --nolegacy_external_runfiles
|
|
|
|
# Turn on --incompatible_strict_action_env which was on by default
|
|
# in Bazel 0.21.0 but turned off again in 0.22.0. Follow
|
|
# https://github.com/bazelbuild/bazel/issues/7026 for more details.
|
|
# This flag is needed to so that the bazel cache is not invalidated
|
|
# when running bazel via `yarn bazel`.
|
|
# See https://github.com/angular/angular/issues/27514.
|
|
build --incompatible_strict_action_env
|
|
run --incompatible_strict_action_env
|
|
test --incompatible_strict_action_env
|
|
|
|
###############################
|
|
# Release support #
|
|
# Turn on these settings with #
|
|
# --config=release #
|
|
###############################
|
|
|
|
# Releases should always be stamped with version control info
|
|
# This command assumes node on the path and is a workaround for
|
|
# https://github.com/bazelbuild/bazel/issues/4802
|
|
build:release --workspace_status_command="node ./tools/bazel_stamp_vars.js"
|
|
|
|
###############################
|
|
# Output #
|
|
###############################
|
|
|
|
# A more useful default output mode for bazel query
|
|
# Prints eg. "ng_module rule //foo:bar" rather than just "//foo:bar"
|
|
query --output=label_kind
|
|
|
|
# By default, failing tests don't print any output, it goes to the log file
|
|
test --test_output=errors
|
|
|
|
################################
|
|
# Settings for CircleCI #
|
|
################################
|
|
|
|
# Bazel flags for CircleCI are in /.circleci/bazel.linux.rc and /.circleci/bazel.windows.rc
|
|
|
|
################################
|
|
# Temporary Settings for Ivy #
|
|
################################
|
|
# to determine if the compiler used should be Ivy or ViewEngine one can use `--define=compile=aot` on
|
|
# any bazel target. This is a temporary flag until codebase is permanently switched to Ivy.
|
|
build --define=compile=legacy
|
|
|
|
##################################
|
|
# Remote Build Execution support #
|
|
# Turn on these settings with #
|
|
# --config=remote #
|
|
##################################
|
|
|
|
# The following --define=EXECUTOR=remote will be able to be removed
|
|
# once https://github.com/bazelbuild/bazel/issues/7254 is fixed
|
|
build:remote --define=EXECUTOR=remote
|
|
|
|
# Set a higher timeout value, just in case.
|
|
build:remote --remote_timeout=600
|
|
|
|
# Increase the default number of jobs by 50% because our build has lots of
|
|
# parallelism
|
|
build:remote --jobs=150
|
|
build:remote --google_default_credentials
|
|
|
|
# Force remote exeuctions to consider the entire run as linux
|
|
build:remote --cpu=k8
|
|
build:remote --host_cpu=k8
|
|
|
|
# Toolchain and platform related flags
|
|
build:remote --host_javabase=@rbe_ubuntu1604_angular//java:jdk
|
|
build:remote --javabase=@rbe_ubuntu1604_angular//java:jdk
|
|
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=@rbe_ubuntu1604_angular//cc:toolchain
|
|
build:remote --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
|
|
build:remote --extra_toolchains=@rbe_ubuntu1604_angular//config:cc-toolchain
|
|
build:remote --extra_execution_platforms=//tools:rbe_ubuntu1604-angular
|
|
build:remote --host_platform=//tools:rbe_ubuntu1604-angular
|
|
build:remote --platforms=//tools:rbe_ubuntu1604-angular
|
|
|
|
# Remote instance and caching
|
|
build:remote --remote_instance_name=projects/internal-200822/instances/default_instance
|
|
build:remote --project_id=internal-200822
|
|
build:remote --remote_cache=remotebuildexecution.googleapis.com
|
|
build:remote --remote_executor=remotebuildexecution.googleapis.com
|
|
|
|
###############################
|
|
# NodeJS rules settings
|
|
# These settings are required for rules_nodejs
|
|
###############################
|
|
|
|
# Turn on managed directories feature in Bazel
|
|
# This allows us to avoid installing a second copy of node_modules
|
|
common --experimental_allow_incremental_repository_updates
|
|
|
|
####################################################
|
|
# User bazel configuration
|
|
# NOTE: This needs to be the *last* entry in the config.
|
|
####################################################
|
|
|
|
# Load any settings which are specific to the current user. Needs to be *last* statement
|
|
# in this config, as the user configuration should be able to overwrite flags from this file.
|
|
try-import .bazelrc.user
|