summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Kuryloski <kuryloskip@vmware.com>2021-05-07 13:01:01 +0200
committerPhilip Kuryloski <kuryloskip@vmware.com>2021-05-07 13:01:01 +0200
commit3d6230432a4dbcaea83e304d0dc49ba457353fce (patch)
tree68f992f4092b1bc362f01ad13a6a269e8b064969
parent59f0076b0bfb752abd543fcb52943b4555300a6f (diff)
downloadrabbitmq-server-git-3d6230432a4dbcaea83e304d0dc49ba457353fce.tar.gz
Add rabbitmq_trust_store to bazel
-rw-r--r--BUILD.trust_store_http15
-rw-r--r--deps/rabbitmq_trust_store/BUILD.bazel122
-rw-r--r--workspace_helpers.bzl16
3 files changed, 151 insertions, 2 deletions
diff --git a/BUILD.trust_store_http b/BUILD.trust_store_http
new file mode 100644
index 0000000000..9fceaaff5c
--- /dev/null
+++ b/BUILD.trust_store_http
@@ -0,0 +1,15 @@
+load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib")
+
+erlang_lib(
+ app_name = "trust_store_http",
+ app_description = "Trust store HTTP server",
+ app_module = "trust_store_http_app",
+ app_version = "1.0.0",
+ extra_apps = [
+ "ssl",
+ ],
+ deps = [
+ "@cowboy//:bazel_erlang_lib",
+ "@jsx//:bazel_erlang_lib",
+ ],
+)
diff --git a/deps/rabbitmq_trust_store/BUILD.bazel b/deps/rabbitmq_trust_store/BUILD.bazel
new file mode 100644
index 0000000000..71a6a883e1
--- /dev/null
+++ b/deps/rabbitmq_trust_store/BUILD.bazel
@@ -0,0 +1,122 @@
+load("@bazel-erlang//:ct.bzl", "ct_suite")
+load("//:rabbitmq_home.bzl", "rabbitmq_home")
+load("//:rabbitmq_run.bzl", "rabbitmq_run")
+load(
+ "//:rabbitmq.bzl",
+ "APP_VERSION",
+ "RABBITMQ_ERLC_OPTS",
+ "RABBITMQ_TEST_ERLC_OPTS",
+ "rabbitmq_lib",
+)
+
+APP_NAME = "rabbitmq_trust_store"
+
+APP_DESCRIPTION = "Client X.509 certificates trust store"
+
+APP_MODULE = "rabbit_trust_store_app"
+
+APP_ENV = """[
+ {default_refresh_interval, 30},
+ {providers, [rabbit_trust_store_file_provider]}
+ ]"""
+
+EXTRA_APPS = [
+ "ssl",
+ "crypto",
+ "public_key",
+]
+
+DEPS = [
+ "//deps/rabbit_common:bazel_erlang_lib",
+]
+
+RUNTIME_DEPS = [
+ "//deps/rabbit:bazel_erlang_lib",
+]
+
+rabbitmq_lib(
+ app_description = APP_DESCRIPTION,
+ app_env = APP_ENV,
+ app_module = APP_MODULE,
+ app_name = APP_NAME,
+ app_version = APP_VERSION,
+ extra_apps = EXTRA_APPS,
+ first_srcs = [
+ "src/rabbit_trust_store_certificate_provider.erl",
+ ],
+ runtime_deps = RUNTIME_DEPS,
+ deps = DEPS,
+)
+
+rabbitmq_home(
+ name = "broker-for-tests-home",
+ plugins = [
+ "//deps/rabbit:bazel_erlang_lib",
+ ":bazel_erlang_lib",
+ "//deps/amqp_client:bazel_erlang_lib",
+ "@ct_helper//:bazel_erlang_lib",
+ ],
+)
+
+rabbitmq_run(
+ name = "rabbitmq-for-tests-run",
+ home = ":broker-for-tests-home",
+)
+
+ct_suite(
+ name = "config_schema_SUITE",
+ data = [
+ "@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
+ "@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
+ ],
+ erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
+ test_env = {
+ "RABBITMQ_CT_SKIP_AS_ERROR": "true",
+ "RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_trust_store/rabbitmq-for-tests-run",
+ "RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_trust_store/broker-for-tests-home/sbin/rabbitmqctl",
+ "RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_trust_store/broker-for-tests-home/sbin/rabbitmq-plugins",
+ },
+ tools = [
+ ":rabbitmq-for-tests-run",
+ ],
+ runtime_deps = [
+ "//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
+ "//deps/rabbitmq_cli:rabbitmqctl",
+ "@rabbitmq_ct_client_helpers//:bazel_erlang_lib",
+ "@rabbitmq_ct_helpers//:bazel_erlang_lib",
+ ],
+)
+
+ct_suite(
+ name = "system_SUITE",
+ data = [
+ "@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
+ "@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
+ ],
+ erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
+ groups = [
+ "file_provider_tests",
+ "http_provider_tests",
+ ],
+ test_env = {
+ "RABBITMQ_CT_SKIP_AS_ERROR": "true",
+ "RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_trust_store/rabbitmq-for-tests-run",
+ "RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_trust_store/broker-for-tests-home/sbin/rabbitmqctl",
+ "RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_trust_store/broker-for-tests-home/sbin/rabbitmq-plugins",
+ },
+ tools = [
+ ":rabbitmq-for-tests-run",
+ ],
+ runtime_deps = [
+ "//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
+ "//deps/rabbitmq_cli:rabbitmqctl",
+ "@ct_helper//:bazel_erlang_lib",
+ "@rabbitmq_ct_client_helpers//:bazel_erlang_lib",
+ "@rabbitmq_ct_helpers//:bazel_erlang_lib",
+ "@trust_store_http//:bazel_erlang_lib",
+ ],
+ deps = [
+ "//deps/amqp_client:bazel_erlang_lib",
+ "//deps/rabbit_common:bazel_erlang_lib",
+ ],
+)
diff --git a/workspace_helpers.bzl b/workspace_helpers.bzl
index e6d3195be7..42892c16df 100644
--- a/workspace_helpers.bzl
+++ b/workspace_helpers.bzl
@@ -50,6 +50,11 @@ def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"):
)
github_bazel_erlang_lib(
+ name = "ct_helper",
+ org = "extend",
+ )
+
+ github_bazel_erlang_lib(
name = "cuttlefish",
org = "Kyorai",
)
@@ -242,11 +247,18 @@ erlang_lib(
commit = "e732727b0b637eb29e8adc77a4eb46d7ebc0f41a",
build_file = rabbitmq_workspace + "//:BUILD.systemd",
patch_cmds = [
- INJECT_GIT_VERSION,
+ SYSTEMD_INJECT_GIT_VERSION,
],
)
-INJECT_GIT_VERSION = """set -euo pipefail
+ new_git_repository(
+ name = "trust_store_http",
+ remote = "https://github.com/rabbitmq/trust-store-http.git",
+ branch = "master",
+ build_file = rabbitmq_workspace + "//:BUILD.trust_store_http",
+ )
+
+SYSTEMD_INJECT_GIT_VERSION = """set -euo pipefail
V="$(git describe --dirty --abbrev=7 --tags --always --first-parent 2>/dev/null \\
|| git describe --dirty --abbrev=7 --tags --always 2>/dev/null || true)"
cat src/systemd.app.src \\