daml/triggers/service/BUILD.bazel
Moritz Kiefer 0281b442b8
-Werror all the things (#9027)
We used to do this for some packages but it broke cpp. I don’t
actually know why it doesn’t do that anymore but I’ll gladly accept
that fact and turn it on everywhere.

changelog_begin
changelog_end
2021-03-04 19:08:59 +01:00

222 lines
7.7 KiB
Python

# Copyright (c) 2021 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
load(
"//bazel_tools:scala.bzl",
"da_scala_binary",
"da_scala_library",
"da_scala_test",
"da_scala_test_suite",
)
load("@build_environment//:configuration.bzl", "sdk_version")
load("@os_info//:os_info.bzl", "is_windows")
tsvc_main_scalacopts = ["-P:wartremover:traverser:org.wartremover.warts.%s" % wart for wart in [
"NonUnitStatements",
]]
da_scala_library(
name = "trigger-service",
srcs = glob(["src/main/scala/**/*.scala"]),
resources = glob(["src/main/resources/**/*"]),
scala_deps = [
"@maven//:com_chuusai_shapeless",
"@maven//:com_github_scopt_scopt",
"@maven//:com_lihaoyi_sourcecode",
"@maven//:com_typesafe_akka_akka_actor",
"@maven//:com_typesafe_akka_akka_actor_typed",
"@maven//:com_typesafe_akka_akka_http",
"@maven//:com_typesafe_akka_akka_http_core",
"@maven//:com_typesafe_akka_akka_http_spray_json",
"@maven//:com_typesafe_akka_akka_parsing",
"@maven//:com_typesafe_akka_akka_stream",
"@maven//:com_typesafe_scala_logging_scala_logging",
"@maven//:io_spray_spray_json",
"@maven//:org_scalaz_scalaz_core",
"@maven//:org_tpolecat_doobie_core",
"@maven//:org_tpolecat_doobie_free",
"@maven//:org_tpolecat_doobie_postgres",
"@maven//:org_typelevel_cats_core",
"@maven//:org_typelevel_cats_effect",
"@maven//:org_typelevel_cats_free",
"@maven//:org_typelevel_cats_kernel",
],
scala_runtime_deps = [
"@maven//:com_typesafe_akka_akka_slf4j",
"@maven//:org_tpolecat_doobie_postgres",
],
scalacopts = tsvc_main_scalacopts,
# Uncomment this if/when the target is published to maven.
# tags = ["maven_coordinates=com.daml:trigger-service:__VERSION__"],
visibility = ["//visibility:public"],
runtime_deps = [
"@maven//:ch_qos_logback_logback_classic",
"@maven//:ch_qos_logback_logback_core",
"@maven//:org_postgresql_postgresql",
],
deps = [
"//daml-lf/archive:daml_lf_archive_reader",
"//daml-lf/archive:daml_lf_dev_archive_proto_java",
"//daml-lf/data",
"//daml-lf/engine",
"//daml-lf/interpreter",
"//daml-lf/language",
"//language-support/scala/bindings",
"//ledger-api/rs-grpc-akka",
"//ledger-api/rs-grpc-bridge",
"//ledger-service/cli-opts",
"//ledger-service/utils",
"//ledger/ledger-api-client",
"//ledger/ledger-api-common",
"//libs-scala/concurrent",
"//libs-scala/contextualized-logging",
"//libs-scala/doobie-slf4j",
"//libs-scala/ports",
"//libs-scala/scala-utils",
"//triggers/runner:trigger-runner-lib",
"//triggers/service/auth:middleware-api",
"@maven//:com_typesafe_config",
"@maven//:com_zaxxer_HikariCP",
"@maven//:org_flywaydb_flyway_core",
"@maven//:org_slf4j_slf4j_api",
],
)
da_scala_binary(
name = "trigger-service-binary",
main_class = "com.daml.lf.engine.trigger.ServiceMain",
visibility = ["//visibility:public"],
deps = [
":trigger-service",
],
)
da_scala_library(
name = "trigger-service-tests",
srcs = glob(["src/test/scala/com/digitalasset/daml/lf/engine/trigger/*.scala"]),
data = [
":test-model.dar",
] + (
[
"@toxiproxy_dev_env//:bin/toxiproxy-cmd",
] if not is_windows else [
"@toxiproxy_dev_env//:toxiproxy-server-windows-amd64.exe",
]
),
resources = glob(["src/test/resources/**/*"]),
scala_deps = [
"@maven//:io_spray_spray_json",
"@maven//:org_scalactic_scalactic",
"@maven//:org_scalatest_scalatest",
"@maven//:org_scalaz_scalaz_core",
"@maven//:com_typesafe_akka_akka_actor_typed",
"@maven//:com_typesafe_akka_akka_http_core",
"@maven//:com_typesafe_akka_akka_parsing",
],
deps = [
":trigger-service",
"//bazel_tools/runfiles:scala_runfiles",
"//daml-lf/archive:daml_lf_archive_reader",
"//daml-lf/archive:daml_lf_dev_archive_proto_java",
"//daml-lf/data",
"//language-support/scala/bindings-akka",
"//ledger-api/rs-grpc-bridge",
"//ledger-api/testing-utils",
"//ledger-service/jwt",
"//ledger/caching",
"//ledger/ledger-api-auth",
"//ledger/ledger-api-common",
"//ledger/ledger-resources",
"//ledger/participant-integration-api",
"//ledger/participant-integration-api:participant-integration-api-tests-lib",
"//ledger/participant-state",
"//ledger/sandbox-classic",
"//ledger/sandbox-common",
"//libs-scala/adjustable-clock",
"//libs-scala/ports",
"//libs-scala/postgresql-testing",
"//libs-scala/resources",
"//libs-scala/scala-utils",
"//libs-scala/timer-utils",
"//triggers/service/auth:middleware-api",
"//triggers/service/auth:oauth2-middleware",
"//triggers/service/auth:oauth2-test-server",
"@maven//:ch_qos_logback_logback_classic",
"@maven//:com_auth0_java_jwt",
"@maven//:eu_rekawek_toxiproxy_toxiproxy_java_2_1_3",
],
)
da_scala_test_suite(
name = "test",
srcs = glob(["src/test-suite/scala/**/*.scala"]),
scala_deps = [
"@maven//:com_typesafe_akka_akka_http_core",
"@maven//:io_spray_spray_json",
"@maven//:org_scalatest_scalatest",
"@maven//:org_scalaz_scalaz_core",
],
deps = [
":trigger-service",
":trigger-service-tests",
"//daml-lf/archive:daml_lf_archive_reader",
"//daml-lf/archive:daml_lf_dev_archive_proto_java",
"//daml-lf/data",
"//language-support/scala/bindings-akka",
"//ledger-api/rs-grpc-bridge",
"//ledger-api/testing-utils",
"//ledger-service/cli-opts",
"//ledger-service/jwt",
"//ledger/ledger-api-auth",
"//ledger/ledger-api-common",
"//ledger/ledger-resources",
"//ledger/sandbox-classic",
"//ledger/sandbox-common",
"//libs-scala/adjustable-clock",
"//libs-scala/flyway-testing",
"//libs-scala/ports",
"//libs-scala/postgresql-testing",
"//libs-scala/resources",
"//triggers/service/auth:oauth2-test-server",
"@maven//:eu_rekawek_toxiproxy_toxiproxy_java_2_1_3",
"@maven//:org_flywaydb_flyway_core",
],
)
genrule(
name = "test-model",
srcs =
glob(["test-model/*.daml"]) + [
"//triggers/daml:daml-trigger.dar",
"//daml-script/daml:daml-script.dar",
],
outs = ["test-model.dar"],
cmd = """
set -eou pipefail
TMP_DIR=$$(mktemp -d)
mkdir -p $$TMP_DIR/daml
cp -L $(location :test-model/TestTrigger.daml) $$TMP_DIR/daml
cp -L $(location :test-model/ErrorTrigger.daml) $$TMP_DIR/daml
cp -L $(location :test-model/LowLevelErrorTrigger.daml) $$TMP_DIR/daml
cp -L $(location //triggers/daml:daml-trigger.dar) $$TMP_DIR/
cp -L $(location //daml-script/daml:daml-script.dar) $$TMP_DIR
cat << EOF > $$TMP_DIR/daml.yaml
sdk-version: {sdk}
name: test-model
source: daml
version: 0.0.1
dependencies:
- daml-stdlib
- daml-prim
- daml-trigger.dar
- daml-script.dar
EOF
$(location //compiler/damlc) build --project-root=$$TMP_DIR --ghc-option=-Werror --ghc-option=-Wno-error=missing-signatures -o $$PWD/$(location test-model.dar)
rm -rf $$TMP_DIR
""".format(sdk = sdk_version),
tools = ["//compiler/damlc"],
visibility = ["//visibility:public"],
)
exports_files(["release/trigger-service-logback.xml"])