mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-20 01:07:18 +03:00
20d26394e1
For some reason, platform_suffix doesn’t seem to provide enough isolation to fix the “undeclared inclusion” errors even though it does fix the issues for me locally. This PR tries to address the problem by switching from `platform_suffix` to modifying the actual URL of the cache. To avoid leaking stuff from the local cache, I’ve added a clean --expunge for now. We should be able to remove this once nodes have been reset tomorrow. It will slow down nodes but that is clearly better than having everything fail. changelog_begin changelog_end
121 lines
5.5 KiB
Plaintext
121 lines
5.5 KiB
Plaintext
# Bazel distributed cache, can be temporarily disabled by passing the following
|
|
# flag: --noremote_accept_cached
|
|
build:darwin --remote_http_cache=https://bazel-cache.da-ext.net
|
|
build:linux --remote_http_cache=https://bazel-cache.da-ext.net
|
|
build --remote_upload_local_results=false
|
|
# 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
|
|
|
|
# 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 1 GB.
|
|
startup --host_jvm_args=-Xms1g --host_jvm_args=-Xmx1g
|
|
|
|
# Required for node_modules trees generated by yarn_install.
|
|
common --experimental_allow_incremental_repository_updates
|
|
|
|
# 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
|
|
|
|
# Bazel defaults to JDK9. This makes sure we run Nix provided JDK, and
|
|
# avoid dreaded "Unrecognized VM option 'CompactStrings'" error
|
|
build --host_javabase=@java_home//:javabase
|
|
build --java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8
|
|
build --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8
|
|
|
|
# Do not use a distinct configuration for "host", that is, binaries used
|
|
# at build time should be the same as release binaries.
|
|
# Without this, we will end up building everything twice as we need "damlc"
|
|
# at build time to bootstrap itself (for compiling ghc-prim).
|
|
build --distinct_host_configuration=false
|
|
|
|
# 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
|
|
|
|
# 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=@rules_haskell//haskell/platforms:linux_x86_64_nixpkgs
|
|
build:darwin --host_platform=@rules_haskell//haskell/platforms:darwin_x86_64_nixpkgs
|
|
# and GHC's gcc on Windows
|
|
build:windows --crosstool_top=@rules_haskell_ghc_windows_amd64//:cc_toolchain
|
|
|
|
# Bazel 1.0 disabled the bash test-runner on Windows. However, some of our
|
|
# test-cases are implemented as bash scripts and rely on the bash test-runner.
|
|
build:windows --noincompatible_windows_native_test_wrapper
|
|
|
|
# Caching is currently disabled on Windows.
|
|
# See: https://github.com/tweag/rules_haskell/issues/744 for details.
|
|
build:windows --noremote_accept_cached
|
|
|
|
# We use a special windows configuration on CI: cache is enabled. The caching
|
|
# is not totally reliable on Windows yet re. absolute paths, but it is not a
|
|
# problem on CI if all builds share a similar directory structure.
|
|
build:windows-ci --remote_accept_cached=true
|
|
|
|
# The Windows CI machines have 4 physical and 8 logical cores. By default Bazel
|
|
# will parallelize up to the number of logical cores. This can cause flakyness
|
|
# in timing sensitive tests.
|
|
build:windows-ci --jobs=4
|
|
|
|
# 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
|
|
|
|
# Get some info from git available to rules with stamp=1
|
|
build --workspace_status_command "bash workspace_status.sh"
|