mirror of
https://github.com/digital-asset/daml.git
synced 2024-09-20 01:07:18 +03:00
94e0111f46
CHANGELOG_BEGIN CHANGELOG_END
199 lines
6.9 KiB
Python
199 lines
6.9 KiB
Python
# Copyright (c) 2020 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
|
||
# SPDX-License-Identifier: Apache-2.0
|
||
load("//bazel_tools:haskell.bzl", "da_haskell_library", "da_haskell_test")
|
||
load("@os_info//:os_info.bzl", "is_windows")
|
||
load("@build_environment//:configuration.bzl", "mvn_version")
|
||
|
||
genrule(
|
||
name = "integration-tests-mvn",
|
||
srcs = [
|
||
"@mvn_dev_env//:mvn",
|
||
"//daml-lf/archive:daml_lf_dev_archive_java_proto",
|
||
"//daml-lf/archive:daml_lf_dev_archive_java_proto_pom",
|
||
"//language-support/java/bindings:libbindings-java.jar",
|
||
"//language-support/java/bindings:bindings-java_pom.xml",
|
||
"//language-support/java/bindings-rxjava:libbindings-rxjava.jar",
|
||
"//language-support/java/bindings-rxjava:bindings-rxjava_pom.xml",
|
||
"//ledger/ledger-api-auth-client:libledger-api-auth-client.jar",
|
||
"//ledger/ledger-api-auth-client:ledger-api-auth-client_pom.xml",
|
||
"//language-support/java/codegen:shaded_binary.jar",
|
||
"//language-support/java/codegen:shaded_binary_pom.xml",
|
||
"//ledger-api/rs-grpc-bridge:librs-grpc-bridge.jar",
|
||
"//ledger-api/rs-grpc-bridge:rs-grpc-bridge_pom.xml",
|
||
"//docs:quickstart-java.tar.gz",
|
||
],
|
||
outs = ["integration-tests-mvn.tar"],
|
||
cmd = """
|
||
set -euo pipefail
|
||
TMP_DIR=$$(mktemp -d)
|
||
MVN_DB="$$TMP_DIR/m2"
|
||
install_mvn() {{
|
||
$(location @mvn_dev_env//:mvn) -q install:install-file \
|
||
-Dmaven.repo.local=$$MVN_DB \
|
||
"-DgroupId=$$1" \
|
||
"-DartifactId=$$2" \
|
||
"-Dfile=$$3" \
|
||
"-DpomFile=$$4" \
|
||
-Dpackaging=jar \
|
||
-Dversion={mvn}
|
||
}}
|
||
tar xf $(location //docs:quickstart-java.tar.gz) -C "$$TMP_DIR"
|
||
install_mvn \
|
||
"com.daml" "daml-lf-archive" \
|
||
$(location //daml-lf/archive:daml_lf_dev_archive_java_proto) \
|
||
$(location //daml-lf/archive:daml_lf_dev_archive_java_proto_pom)
|
||
install_mvn \
|
||
"com.daml" "bindings-java" \
|
||
$(location //language-support/java/bindings:libbindings-java.jar) \
|
||
$(location //language-support/java/bindings:bindings-java_pom.xml)
|
||
install_mvn \
|
||
"com.daml" "bindings-rxjava" \
|
||
$(location //language-support/java/bindings-rxjava:libbindings-rxjava.jar) \
|
||
$(location //language-support/java/bindings-rxjava:bindings-rxjava_pom.xml)
|
||
install_mvn \
|
||
"com.daml" "codegen-java" \
|
||
$(location //language-support/java/codegen:shaded_binary.jar) \
|
||
$(location //language-support/java/codegen:shaded_binary_pom.xml)
|
||
install_mvn \
|
||
"com.daml" "rs-grpc-bridge" \
|
||
$(location //ledger-api/rs-grpc-bridge:librs-grpc-bridge.jar) \
|
||
$(location //ledger-api/rs-grpc-bridge:rs-grpc-bridge_pom.xml)
|
||
install_mvn \
|
||
"com.daml" "ledger-api-auth-client" \
|
||
$(location //ledger/ledger-api-auth-client:libledger-api-auth-client.jar) \
|
||
$(location //ledger/ledger-api-auth-client:ledger-api-auth-client_pom.xml)
|
||
$(location @mvn_dev_env//:mvn) -q -Dmaven.repo.local=$$MVN_DB -f "$$TMP_DIR/quickstart-java/pom.xml" dependency:resolve dependency:resolve-plugins
|
||
tar cf $(location integration-tests-mvn.tar) -C $$(dirname $$MVN_DB) $$(basename $$MVN_DB) \
|
||
--owner=0 --group=0 --numeric-owner --mtime=2000-01-01\ 00:00Z --sort=name
|
||
""".format(mvn = mvn_version),
|
||
)
|
||
|
||
ts_libraries = [
|
||
"//language-support/ts/daml-types:npm_package",
|
||
"//language-support/ts/daml-ledger:npm_package",
|
||
"//language-support/ts/daml-react:npm_package",
|
||
]
|
||
|
||
create_daml_app_resources = [
|
||
"//templates:create-daml-app-test-resources/messaging.patch",
|
||
"//templates:create-daml-app-test-resources/testDeps.json",
|
||
"//templates:create-daml-app-test-resources/index.test.ts",
|
||
]
|
||
|
||
da_haskell_library(
|
||
name = "integration-test-utils",
|
||
srcs = ["src/DA/Daml/Assistant/IntegrationTestUtils.hs"],
|
||
hackage_deps = [
|
||
"base",
|
||
"conduit",
|
||
"conduit-extra",
|
||
"extra",
|
||
"filepath",
|
||
"tasty",
|
||
"text",
|
||
],
|
||
src_strip_prefix = "src",
|
||
visibility = ["//visibility:public"],
|
||
deps = [
|
||
"//libs-haskell/bazel-runfiles",
|
||
"//libs-haskell/da-hs-base",
|
||
"//libs-haskell/test-utils",
|
||
],
|
||
)
|
||
|
||
da_haskell_test(
|
||
name = "integration-tests",
|
||
timeout = "long",
|
||
srcs = [
|
||
"src/DA/Daml/Assistant/FreePort.hs",
|
||
"src/DA/Daml/Assistant/IntegrationTests.hs",
|
||
],
|
||
args = [
|
||
"$(location //:yarn)",
|
||
],
|
||
data = [
|
||
":integration-tests-mvn",
|
||
"//release:sdk-release-tarball",
|
||
"@local_jdk//:bin/java.exe" if is_windows else "@local_jdk//:bin/java",
|
||
"//:yarn",
|
||
"//compiler/damlc/tests:generate-simple-dalf",
|
||
"@mvn_dev_env//:mvn",
|
||
"@tar_dev_env//:tar",
|
||
] + ([] if is_windows else ts_libraries),
|
||
# I’m sure the mvn stuff will be flaky.
|
||
flaky = True,
|
||
hackage_deps = [
|
||
"aeson",
|
||
"async",
|
||
"base",
|
||
"conduit",
|
||
"conduit-extra",
|
||
"containers",
|
||
"directory",
|
||
"extra",
|
||
"filepath",
|
||
"http-client",
|
||
"http-types",
|
||
"jwt",
|
||
"network",
|
||
"unordered-containers",
|
||
"process",
|
||
"tar",
|
||
"tar-conduit",
|
||
"tasty",
|
||
"tasty-hunit",
|
||
"text",
|
||
],
|
||
main_function = "DA.Daml.Assistant.IntegrationTests.main",
|
||
visibility = ["//visibility:public"],
|
||
deps = [
|
||
":integration-test-utils",
|
||
"//:sdk-version-hs-lib",
|
||
"//daml-assistant/daml-helper:daml-helper-lib",
|
||
"//language-support/ts/codegen/tests:daml2js-test-helpers",
|
||
"//libs-haskell/bazel-runfiles",
|
||
"//libs-haskell/da-hs-base",
|
||
"//libs-haskell/test-utils",
|
||
],
|
||
)
|
||
|
||
da_haskell_test(
|
||
name = "create-daml-app-tests",
|
||
timeout = "long",
|
||
srcs = ["src/DA/Daml/Assistant/CreateDamlAppTests.hs"],
|
||
args = [
|
||
"$(location //:yarn)",
|
||
],
|
||
data = [
|
||
"//release:sdk-release-tarball",
|
||
"@local_jdk//:bin/java.exe" if is_windows else "@local_jdk//:bin/java",
|
||
"//:yarn",
|
||
"@patch_dev_env//:patch",
|
||
] + ([] if is_windows else ts_libraries + create_daml_app_resources),
|
||
# The Puppeteer tests can have race conditions, probably due to the way
|
||
# we depend on UI elements appearing.
|
||
flaky = True,
|
||
hackage_deps = [
|
||
"aeson",
|
||
"aeson-extra",
|
||
"base",
|
||
"bytestring",
|
||
"directory",
|
||
"extra",
|
||
"filepath",
|
||
"tasty",
|
||
"tasty-hunit",
|
||
],
|
||
main_function = "DA.Daml.Assistant.CreateDamlAppTests.main",
|
||
# Exclusive until we stop hardcoding port numbers in index.test.ts
|
||
tags = ["exclusive"],
|
||
visibility = ["//visibility:public"],
|
||
deps = [
|
||
":integration-test-utils",
|
||
"//language-support/ts/codegen/tests:daml2js-test-helpers",
|
||
"//libs-haskell/bazel-runfiles",
|
||
"//libs-haskell/da-hs-base",
|
||
"//libs-haskell/test-utils",
|
||
],
|
||
)
|