2021-01-28 17:17:08 +01:00
|
|
|
# Inspired on from https://raw.githubusercontent.com/bazelbuild/rules_nodejs/master/common.bazelrc
|
|
|
|
# Common Bazel settings for JavaScript/NodeJS workspaces
|
|
|
|
# This rc file is automatically discovered when Bazel is run in this workspace,
|
|
|
|
# see https://docs.bazel.build/versions/master/guide.html#bazelrc
|
|
|
|
#
|
|
|
|
# The full list of Bazel options: https://docs.bazel.build/versions/master/command-line-reference.html
|
|
|
|
|
2021-02-04 01:00:12 +01:00
|
|
|
# Local Cache Settings
|
|
|
|
## Avoid cache results from being corrupt when changing source during build
|
2021-03-03 21:21:20 +01:00
|
|
|
build --experimental_guard_against_concurrent_changes
|
|
|
|
run --experimental_guard_against_concurrent_changes
|
|
|
|
test --experimental_guard_against_concurrent_changes
|
2021-01-28 17:17:08 +01:00
|
|
|
|
2021-02-04 01:00:12 +01:00
|
|
|
## Cache action outputs on disk so they persist across output_base and bazel shutdown (eg. changing branches)
|
|
|
|
build --disk_cache=~/.bazel-cache/disk-cache
|
|
|
|
|
|
|
|
## Bazel repo cache settings
|
|
|
|
build --repository_cache=~/.bazel-cache/repository-cache
|
2021-01-28 17:17:08 +01:00
|
|
|
|
|
|
|
# Bazel will create symlinks from the workspace directory to output artifacts.
|
2021-04-01 23:34:54 +02:00
|
|
|
# Build results will be placed in a directory called "bazel-bin"
|
2021-01-28 17:17:08 +01:00
|
|
|
# This will still create a bazel-out symlink in
|
|
|
|
# the project directory, which must be excluded from the
|
|
|
|
# editor's search path.
|
|
|
|
# To disable the symlinks altogether (including bazel-out) we can use
|
|
|
|
# build --symlink_prefix=/
|
|
|
|
# however this makes it harder to find outputs.
|
|
|
|
|
|
|
|
# Prevents the creation of bazel-out dir
|
2021-04-01 23:34:54 +02:00
|
|
|
# build --experimental_no_product_name_out_symlink
|
2021-01-28 17:17:08 +01:00
|
|
|
|
|
|
|
# Make direct file system calls to create symlink trees
|
|
|
|
build --experimental_inprocess_symlink_creation
|
|
|
|
|
|
|
|
# Incompatible flags to run with
|
|
|
|
build --incompatible_no_implicit_file_export
|
|
|
|
build --incompatible_restrict_string_escapes
|
|
|
|
|
|
|
|
# Log configs
|
|
|
|
## different from default
|
|
|
|
common --color=yes
|
|
|
|
build --show_task_finish
|
|
|
|
build --noshow_progress
|
|
|
|
build --noshow_loading_progress
|
2021-02-04 01:00:12 +01:00
|
|
|
build --show_result=0
|
2021-01-28 17:17:08 +01:00
|
|
|
|
|
|
|
# Specifies desired output mode for running tests.
|
|
|
|
# Valid values are
|
|
|
|
# 'summary' to output only test status summary
|
|
|
|
# 'errors' to also print test logs for failed tests
|
|
|
|
# 'all' to print logs for all tests
|
|
|
|
# 'streamed' to output logs for all tests in real time
|
|
|
|
# (this will force tests to be executed locally one at a time regardless of --test_strategy value).
|
|
|
|
test --test_output=errors
|
|
|
|
|
|
|
|
# Support for debugging NodeJS tests
|
|
|
|
# Add the Bazel option `--config=debug` to enable this
|
|
|
|
# --test_output=streamed
|
|
|
|
# Stream stdout/stderr output from each test in real-time.
|
|
|
|
# See https://docs.bazel.build/versions/master/user-manual.html#flag--test_output for more details.
|
|
|
|
# --test_strategy=exclusive
|
|
|
|
# Run one test at a time.
|
|
|
|
# --test_timeout=9999
|
|
|
|
# Prevent long running tests from timing out
|
|
|
|
# See https://docs.bazel.build/versions/master/user-manual.html#flag--test_timeout for more details.
|
|
|
|
# --nocache_test_results
|
|
|
|
# Always run tests
|
|
|
|
# --node_options=--inspect-brk
|
|
|
|
# Pass the --inspect-brk option to all tests which enables the node inspector agent.
|
|
|
|
# See https://nodejs.org/de/docs/guides/debugging-getting-started/#command-line-options for more details.
|
|
|
|
# --define=VERBOSE_LOGS=1
|
|
|
|
# Rules will output verbose logs if the VERBOSE_LOGS environment variable is set. `VERBOSE_LOGS` will be passed to
|
|
|
|
# `nodejs_binary` and `nodejs_test` via the default value of the `default_env_vars` attribute of those rules.
|
|
|
|
# --compilation_mode=dbg
|
|
|
|
# Rules may change their build outputs if the compilation mode is set to dbg. For example,
|
|
|
|
# mininfiers such as terser may make their output more human readable when this is set. `COMPILATION_MODE` will be passed to
|
|
|
|
# `nodejs_binary` and `nodejs_test` via the default value of the `default_env_vars` attribute of those rules.
|
|
|
|
# See https://docs.bazel.build/versions/master/user-manual.html#flag--compilation_mode for more details.
|
|
|
|
test:debug --test_output=streamed --test_strategy=exclusive --test_timeout=9999 --nocache_test_results --define=VERBOSE_LOGS=1
|
|
|
|
# Use bazel run with `--config=debug` to turn on the NodeJS inspector agent.
|
|
|
|
# The node process will break before user code starts and wait for the debugger to connect.
|
|
|
|
run:debug --define=VERBOSE_LOGS=1 -- --node_options=--inspect-brk
|
|
|
|
# The following option will change the build output of certain rules such as terser and may not be desirable in all cases
|
2021-02-04 01:00:12 +01:00
|
|
|
# It will also output both the repo cache and action cache to a folder inside the repo
|
2021-04-02 02:34:53 +02:00
|
|
|
build:debug --compilation_mode=dbg --show_result=1
|
2021-01-28 17:17:08 +01:00
|
|
|
|
|
|
|
# Turn off legacy external runfiles
|
|
|
|
# This prevents accidentally depending on this feature, which Bazel will remove.
|
|
|
|
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 tree, 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
|
|
|
|
|
|
|
|
# When running `bazel coverage` --instrument_test_targets needs to be set in order to
|
|
|
|
# collect coverage information from test targets
|
|
|
|
coverage --instrument_test_targets
|
|
|
|
|
|
|
|
# Settings for CI
|
|
|
|
# Bazel flags for CI are in /src/dev/ci_setup/.bazelrc-ci
|
|
|
|
|
|
|
|
# Load any settings specific to the current user.
|
|
|
|
# .bazelrc.user should appear in .gitignore so that settings are not shared with team members
|
|
|
|
# This needs to be last statement in this
|
|
|
|
# config, as the user configuration should be able to overwrite flags from this file.
|
|
|
|
# See https://docs.bazel.build/versions/master/best-practices.html#bazelrc
|
|
|
|
# (Note that we use .bazelrc.user so the file appears next to .bazelrc in directory listing,
|
|
|
|
# rather than user.bazelrc as suggested in the Bazel docs)
|
|
|
|
try-import %workspace%/.bazelrc.user
|