Skip to content

Commit

Permalink
Fix concurrent DAML compilations on Windows
Browse files Browse the repository at this point in the history
Since Windows builds aren’t sandboxed properly (see
bazelbuild/bazel#5136), concurrent
compilations interact with the same tmp_db directory which leads to
flaky build failures.
  • Loading branch information
cocreature authored and garyverhaegen-da committed Apr 24, 2019
1 parent d97c099 commit 2cb6a67
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions daml-foundations/daml-ghc/package-database/util.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,17 @@ def _daml_package_rule_impl(ctx):
progress_message = "Compiling " + name + ".daml to daml-lf " + ctx.attr.daml_lf_version,
command = """
set -eou pipefail
mkdir -p tmp_db
tar xf {db_tar} -C tmp_db --strip-components 1
mkdir -p tmp_db/{daml_lf_version}
# Since we don't have sandboxing on Windows, that directory might
# exist from a previous build.
rm -rf {package_db_name}
mkdir -p {package_db_name}
tar xf {db_tar} -C {package_db_name} --strip-components 1
mkdir -p {package_db_name}/{daml_lf_version}
# Compile the dalf file
{damlc_bootstrap} compile \
--package-name {pkg_name} \
--package-db tmp_db \
--package-db {package_db_name} \
--write-iface \
--target {daml_lf_version} \
-o {dalf_file} \
Expand All @@ -94,6 +97,7 @@ def _daml_package_rule_impl(ctx):
""".format(
main = modules[ctx.attr.main],
name = name,
package_db_name = "package_db_for_" + name,
damlc_bootstrap = ctx.executable.damlc_bootstrap.path,
dalf_file = ctx.outputs.dalf.path,
daml_lf_version = ctx.attr.daml_lf_version,
Expand Down

0 comments on commit 2cb6a67

Please sign in to comment.