Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
angular/.bazelrc
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
177 lines (143 sloc)
7.24 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 | |
# Do not build runfile trees by default. If an execution strategy relies on runfile | |
# symlink teee, the tree is created on-demand. See: https://github.com/bazelbuild/bazel/issues/6627 | |
# and https://github.com/bazelbuild/bazel/commit/03246077f948f2790a83520e7dccc2625650e6df | |
build --nobuild_runfile_links | |
build --enable_runfiles | |
############################### | |
# 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="yarn -s ng-dev release build-env-stamp --mode=release" | |
build:release --stamp | |
# Building AIO against local Angular deps requires stamping | |
# versions in Angular packages due to CLI version checks. | |
build:aio_local_deps --stamp | |
build:aio_local_deps --workspace_status_command="yarn -s --cwd aio local-workspace-status" | |
# Snapshots should also be stamped with version control information. | |
build:snapshot-build --workspace_status_command="yarn -s ng-dev release build-env-stamp --mode=snapshot" | |
build:snapshot-build --stamp | |
########################################################## | |
# AIO architect build configuration # | |
# See aio/angular.json for available configurations. # | |
# To build with a partiular configuration: # | |
# bazel build //aio:build --aio_build_config=<config> # | |
# Default config is `stable``. # | |
########################################################## | |
build --flag_alias=aio_build_config=//aio:flag_aio_build_config | |
#################################### | |
# AIO first party dep substitution # | |
# Turn on with # | |
# --config=aio_local_deps # | |
#################################### | |
build:aio_local_deps --//aio:flag_aio_local_deps | |
############################### | |
# 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 | |
################################## | |
# 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 | |
# Limit the number of test jobs for on an AIO local deps build. The example tests running | |
# concurrently pushes the circleci executor RAM usage to its limits. | |
test:aio_local_deps --jobs=24 | |
# 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 --crosstool_top=@npm//@angular/build-tooling/bazel/remote-execution/cpp:cc_toolchain_suite | |
build:remote --extra_toolchains=@npm//@angular/build-tooling/bazel/remote-execution/cpp:cc_toolchain | |
build:remote --extra_execution_platforms=@npm//@angular/build-tooling/bazel/remote-execution:platform | |
build:remote --host_platform=@npm//@angular/build-tooling/bazel/remote-execution:platform | |
build:remote --platforms=@npm//@angular/build-tooling/bazel/remote-execution:platform | |
# Remote instance and caching | |
build:remote --remote_instance_name=projects/internal-200822/instances/primary_instance | |
build:remote --project_id=internal-200822 | |
build:remote --remote_cache=remotebuildexecution.googleapis.com | |
build:remote --remote_executor=remotebuildexecution.googleapis.com | |
# Ensure that tags like "no-remote-exec" get propagated to actions created by rules, | |
# even if the rule implementation does not explicitly pass them to the execution requirements. | |
# https://bazel.build/reference/command-line-reference#flag--experimental_allow_tags_propagation | |
common --experimental_allow_tags_propagation | |
# Disable network access in the sandbox by default. To enable network access | |
# for a particular target, use: | |
# | |
# load("@npm//@angular/build-tooling/bazel/remote-execution:index.bzl", "ENABLE_NETWORK") | |
# my_target( | |
# ..., | |
# exec_properties = ENABLE_NETWORK, # Enables network in remote exec | |
# tags = ["requires-network"] # Enables network in sandbox | |
# ) | |
build --nosandbox_default_allow_network | |
################################## | |
# Saucelabs tests settings # | |
# Turn on these settings with # | |
# --config=saucelabs # | |
################################## | |
# For saucelabs tests we don't want to enable flaky test attempts. Karma has its own integrated | |
# retry mechanism and we do not want to retry unnecessarily if Karma already tried multiple times. | |
test:saucelabs --flaky_test_attempts=1 | |
################ | |
# Flag Aliases # | |
################ | |
# --ng_perf will ask the Ivy compiler to produce performance results for each build. | |
build --flag_alias=ng_perf=//packages/compiler-cli:ng_perf | |
#################################################### | |
# 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 %workspace%/.bazelrc.user |