# 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 # Local Cache Settings ## Avoid cache results from being corrupt when changing source during build build --experimental_guard_against_concurrent_changes run --experimental_guard_against_concurrent_changes test --experimental_guard_against_concurrent_changes query --experimental_guard_against_concurrent_changes ## Cache action outputs on disk so they persist across output_base and bazel shutdown (eg. changing branches) common --disk_cache=~/.bazel-cache/disk-cache ## Bazel repo cache settings common --repository_cache=~/.bazel-cache/repository-cache # Bazel will create symlinks from the workspace directory to output artifacts. # Build results will be placed in a directory called "bazel-bin" # 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 # build --experimental_no_product_name_out_symlink # 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 query --incompatible_no_implicit_file_export query --incompatible_restrict_string_escapes # Log configs ## different from default common --color=yes common --noshow_progress common --show_task_finish build --noshow_loading_progress query --noshow_loading_progress build --show_result=0 # 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 # It will also output both the repo cache and action cache to a folder inside the repo build:debug --compilation_mode=dbg --show_result=0 --noshow_loading_progress --noshow_progress --show_task_finish # 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 # Runfiles should be enabled un order to use `exports_directories_only` in the yarn_install rule # https://bazelbuild.github.io/rules_nodejs/Built-ins.html#yarn_install-exports_directories_only build --enable_runfiles run --enable_runfiles test --enable_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 # DISABLED for now due to https://bazelbuild.github.io/rules_nodejs/Built-ins.html#yarn_install-exports_directories_only # 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