-
Notifications
You must be signed in to change notification settings - Fork 250
Expand file tree
/
Copy path.bazelrc
More file actions
137 lines (113 loc) · 6.07 KB
/
.bazelrc
File metadata and controls
137 lines (113 loc) · 6.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
common --enable_bzlmod
common --noenable_workspace
# Bazel distributed cache, can be temporarily disabled by passing the following
# flag: --noremote_accept_cached
build:darwin --remote_cache=https://bazel-cache.da-ext.net/202405/macos
build:linux --remote_cache=https://bazel-cache.da-ext.net/202405/ubuntu
# Don't push local build results to the remote cache.
build --remote_upload_local_results=false
# Do still push local build results to the local disk cache.
build --incompatible_remote_results_ignore_disk=true
# Enable the disk cache in addition to the http cache.
build:linux --disk_cache=.bazel-cache/disk
build:darwin --disk_cache=.bazel-cache/disk
# `--repository_cache` must be repeated for all relevant actions.
# TODO: use `common` starting from Bazel 2.2.0
# See https://github.com/bazelbuild/bazel/issues/11232
build:linux --repository_cache=.bazel-cache/repo
fetch:linux --repository_cache=.bazel-cache/repo
sync:linux --repository_cache=.bazel-cache/repo
build:darwin --repository_cache=.bazel-cache/repo
fetch:darwin --repository_cache=.bazel-cache/repo
sync:darwin --repository_cache=.bazel-cache/repo
test:oracle --repo_env DAML_ORACLE_TESTING=true --test_env ORACLE_USERNAME --test_env ORACLE_PORT --test_env ORACLE_PWD
# set c++ compilation version to 14 (requiered for abseil) -> 17 for new version
build --cxxopt=-std=c++17
build --host_cxxopt=-std=c++17
# Improve remote cache hit rate by exluding environment variables from the
# sandbox that are not whitelisted using --action_env.
# This will become the default in a future Bazel release.
build --experimental_strict_action_env
# Drop the heap size of Bazel to 3 GB and force TLS 1.2.
# With TLS 1.3, we run into the following error on Darwin.
# > No subject alternative DNS name matching github-releases.githubusercontent.com found.
# It looks like this is a result of SNI being broken on TLS 1.3 which results
# in us getting a certificate for githubassets.com instead.
startup --host_jvm_args=-Xms3g --host_jvm_args=-Xmx3g --host_jvm_args=-Djdk.tls.client.protocols=TLSv1.2
# Limit the number of parallel actions spawned by Bazel to the number of
# physical CPUs. (Assuming a CPU with hyperthreading enabled)
build --loading_phase_threads="HOST_CPUS*.5"
fetch --loading_phase_threads="HOST_CPUS*.5"
query --loading_phase_threads="HOST_CPUS*.5"
sync --loading_phase_threads="HOST_CPUS*.5"
build --local_resources=cpu="HOST_CPUS*.5"
# Enable sandboxing and caching for exclusive tests
build --incompatible_exclusive_test_sandboxed
# Print test output of failed test.
# Set --test_output=streamed to get the output of all tests in real time.
# Note, this will force tests to run locally and sequentially.
test --test_output=errors
# print verbose failures
build --verbose_failures
# Enable persistent Scala workers to improve compilation times.
# Refer to https://github.com/bazelbuild/rules_scala#readme for details.
build --strategy=Scalac=worker
test --strategy=Scalac=worker
# Activate MacOS fix for "ld: illegal thread local variable reference
# to regular symbol". See
# https://github.com/grpc/grpc/pull/13929/files
build --copt -DGRPC_BAZEL_BUILD
# build --java_language_version=17
# build:linux --java_runtime_version=nixpkgs_java_17
# build:linux --tool_java_runtime_version=nixpkgs_java_17
# build:darwin --java_runtime_version=nixpkgs_java_17
# build:darwin --tool_java_runtime_version=nixpkgs_java_17
# build:windows --java_runtime_version=17
# build:windows --tool_java_runtime_version=17
# build --tool_java_language_version=17
build --java_language_version=17
build --tool_java_language_version=17
build --java_runtime_version=remotejdk_17
build --tool_java_runtime_version=remotejdk_17
# Propagate locales and the java home to the test environment.
build --test_env=LANG=en_US.utf8 --test_env=LOCALE_ARCHIVE --test_env=JAVA_HOME
# Disable c-ares support in grpc. We don't need a faster DNS library
# since we're only connecting to localhost.
build --define=grpc_no_ares=true
# Disable builds without the bytes, which is enabled by default as of Bazel 7.
# The remote cache evicts items without taking the link between action cache
# entries and CAS entries into account. Build without the bytes causes build
# failures when a CAS item for a cached action is missing.
build --remote_download_outputs=all
# Pass through cacert information for git.
build --action_env=GIT_SSL_CAINFO
# Pass through locale archive to ensure that we can get a UTF-8 locale.
build:linux --action_env=LOCALE_ARCHIVE
build:windows --action_env=JAVA_HOME
# Tell bazel to use the nixpkgs Haskell toolchain on Linux and Darwin
build:linux --host_platform=@io_tweag_rules_nixpkgs//nixpkgs/platforms:host
build:darwin --host_platform=@io_tweag_rules_nixpkgs//nixpkgs/platforms:host
# and GHC's gcc on Windows
build:windows --crosstool_top=@rules_haskell_ghc_windows_amd64//:cc_toolchain
build:windows --remote_accept_cached=true
build:windows --jobs=4
build --action_env=CC=/usr/bin/gcc-14
build --action_env=CXX=/usr/bin/g++-14
# Instruct bazel to globally use this flag for compiling protobuf files.
# We need the source info for generating proto docs. By default proto_library strips
# source information and doesn't provide an option to turn this flag on.
# Ideally we would only set this option for the proto_library target we care about.
# See https://github.com/bazelbuild/rules_go/issues/1519#issuecomment-451622947
build:linux --protocopt=--include_source_info
build:darwin --protocopt=--include_source_info
#FIXME: it generates stderr, which is causing error in bazel on windows:
# https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/compiler/command_line_interface.cc#L1363
#build:windows --protocopt=--include_source_info
# Some tools used in tests, like postgres CLI, require cmd.exe which can be located by them
# using ComSpec environment variable. By default it's not passed from Bazel client environment.
test:windows --test_env=ComSpec
# We default to -c opt. We compile Haskell with -O1 anyway since otherwise
# it is unusably slow and the C deps change rarely so there is little reason
# to not compile them with optimizations.
build -c opt
try-import %workspace%/.bazelrc.local