Use gazelle generated bazel files

Bazel build files are now maintained primarily with `bazel run
gazelle`. This will analyze and merge changes into the build files as
necessitated by certain code changes (e.g. the introduction of new
modules).

In some cases there hints to gazelle in the build files, such as `#
gazelle:erlang...` or `# keep` comments. xref checks on plugins that
depend on the cli are a good example.
This commit is contained in:
Rin Kuryloski 2023-02-23 14:47:41 +01:00
parent e507469387
commit 8de8f59d47
127 changed files with 9980 additions and 1447 deletions

View File

@ -71,15 +71,23 @@ Note: This takes quite some time on a single machine.
`bazel test //deps/rabbit:lazy_queue_SUITE`
## Add/update an external dependency from hex.pm
## Add/update an external dependency
### from hex.pm
1. `bazel run gazelle-update-repos -- -args hex.pm/accept@0.3.5` to generate/update `bazel/BUILD.accept`
1. `git checkout WORKSPACE` to reset the workspace file
1. Add/update the entry in MODULE.bazel
## Add/update an external dependency from github
### from github
`bazel run gazelle-update-repos -- -args --testonly github.com/extend/ct_helper`
1. `bazel run gazelle-update-repos -- -args --testonly github.com/extend/ct_helper@master`
1. `git checkout WORKSPACE` to reset the workspace file
1. Add/update the entry in MODULE.bazel
## Update BUILD files
`bazel run gazelle`
## Additional Useful Commands

View File

@ -4,17 +4,25 @@ load(
"string_flag",
)
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
load("@bazel_gazelle//:def.bzl", "gazelle")
load("@rules_erlang//gazelle:def.bzl", "GAZELLE_ERLANG_RUNTIME_DEPS")
load("@rules_erlang//:erlang_bytecode2.bzl", "erlc_opts")
load("@rules_erlang//:dialyze.bzl", "DEFAULT_PLT_APPS", "plt")
load("@rules_erlang//:shell.bzl", "shell")
load("@rules_erlang//:erl_eval.bzl", "erl_eval")
load("@bazel_gazelle//:def.bzl", "gazelle")
load("@rules_erlang//gazelle:def.bzl", "GAZELLE_ERLANG_RUNTIME_DEPS")
load("@rules_erlang//gazelle:moduleindex.bzl", "moduleindex")
load("//bazel/elixir:iex_eval.bzl", "iex_eval")
load(":rabbitmq_home.bzl", "rabbitmq_home")
load(":rabbitmq_run.bzl", "rabbitmq_run", "rabbitmq_run_command")
load(":rabbitmqctl.bzl", "rabbitmqctl")
load(":dist.bzl", "package_generic_unix", "source_archive")
load(":rabbitmq.bzl", "all_plugins")
load(
":rabbitmq.bzl",
"RABBITMQ_ERLC_OPTS",
"RABBITMQ_TEST_ERLC_OPTS",
"all_plugins",
"without",
)
exports_files([
"scripts/bazel/rabbitmq-run.sh",
@ -22,11 +30,62 @@ exports_files([
"release-notes",
])
# gazelle:prefix github.com/rabbitmq/rabbitmq-server
# gazelle:exclude .github
# gazelle:exclude .elixir_ls
# gazelle:exclude bazel
# gazelle:exclude bazel-out
# gazelle:exclude deps/*/priv
# gazelle:exclude deps/accept
# gazelle:exclude deps/aten
# gazelle:exclude deps/base64url
# gazelle:exclude deps/cowboy
# gazelle:exclude deps/cowlib
# gazelle:exclude deps/credentials_obfuscation
# gazelle:exclude deps/csv
# gazelle:exclude deps/cuttlefish
# gazelle:exclude deps/eetcd
# gazelle:exclude deps/elvis_mk
# gazelle:exclude deps/enough
# gazelle:exclude deps/gen_batch_server
# gazelle:exclude deps/getopt
# gazelle:exclude deps/gun
# gazelle:exclude deps/jose
# gazelle:exclude deps/json
# gazelle:exclude deps/observer_cli
# gazelle:exclude deps/osiris
# gazelle:exclude deps/prometheus
# gazelle:exclude deps/quantile_estimator
# gazelle:exclude deps/ra
# gazelle:exclude deps/rabbitmq_cli
# gazelle:exclude deps/ranch
# gazelle:exclude deps/recon
# gazelle:exclude deps/redbug
# gazelle:exclude deps/seshat
# gazelle:exclude deps/stdout_formatter
# gazelle:exclude deps/syslog
# gazelle:exclude deps/sysmon_handler
# gazelle:exclude deps/systemd
# gazelle:exclude deps/thoas
# gazelle:exclude packaging
# gazelle:exclude PACKAGES
# gazelle:exclude logs
# gazelle:erlang_apps_dirs deps
# gazelle:erlang_skip_rules test_erlang_app
# gazelle:erlang_skip_rules ct_test
# gazelle:erlang_generate_beam_files_macro
# gazelle:erlang_generate_fewer_bytecode_rules
# gazelle:erlang_app_dep_exclude rabbitmq_cli
# gazelle:map_kind erlang_app rabbitmq_app //:rabbitmq.bzl
# gazelle:map_kind assert_suites2 assert_suites //:rabbitmq.bzl
# gazelle:erlang_module_source_lib Elixir.RabbitMQ.CLI.CommandBehaviour:rabbitmq_cli
gazelle(
name = "gazelle",
data = GAZELLE_ERLANG_RUNTIME_DEPS,
extra_args = [
"--verbose",
],
gazelle = "@rules_erlang//gazelle:gazelle_erlang_binary",
)
@ -63,7 +122,10 @@ string_flag(
plt(
name = "base_plt",
apps = DEFAULT_PLT_APPS + ["compiler", "crypto"],
apps = DEFAULT_PLT_APPS + [
"compiler",
"crypto",
], # keep
visibility = ["//visibility:public"],
)
@ -194,6 +256,22 @@ source_archive(
plugins = PLUGINS,
)
moduleindex(
name = "moduleindex",
testonly = True,
apps = PLUGINS + [
"@ct_helper//:erlang_app",
"@emqtt//:erlang_app",
"@inet_tcp_proxy_dist//:erlang_app",
"@meck//:erlang_app",
"@proper//:erlang_app",
"//deps/rabbitmq_ct_client_helpers:erlang_app",
"//deps/rabbitmq_ct_helpers:erlang_app",
"//deps/trust_store_http:erlang_app",
],
tags = ["manual"],
)
alias(
name = "test-logs",
actual = "//bazel/util:test-logs",
@ -213,3 +291,27 @@ alias(
name = "remote-test-node-data",
actual = "//bazel/util:remote-test-node-data",
)
erlc_opts(
name = "erlc_opts",
values = select({
"@rules_erlang//:debug_build": without("+deterministic", RABBITMQ_ERLC_OPTS),
"//conditions:default": RABBITMQ_ERLC_OPTS,
}) + select({
":test_build": [
"-DTEST=1",
"+nowarn_export_all",
],
"//conditions:default": [],
}), # keep
visibility = [":__subpackages__"],
)
erlc_opts(
name = "test_erlc_opts",
values = select({
"@rules_erlang//:debug_build": without("+deterministic", RABBITMQ_TEST_ERLC_OPTS),
"//conditions:default": RABBITMQ_TEST_ERLC_OPTS,
}), # keep
visibility = [":__subpackages__"],
)

View File

@ -11,7 +11,7 @@ erlc_opts(
"+debug_info",
"+deterministic",
],
}), # keep
}),
visibility = [":__subpackages__"],
)
@ -87,9 +87,10 @@ erlang_bytecode(
"ebin/kv_pb.beam",
"ebin/router_pb.beam",
],
hdrs = ["include/eetcd.hrl"],
hdrs = [
"include/eetcd.hrl",
],
app_name = "eetcd",
beam = [],
erlc_opts = "//:erlc_opts",
)
@ -138,14 +139,13 @@ filegroup(
],
)
filegroup(
name = "private_hdrs",
srcs = [],
)
filegroup(name = "private_hdrs")
filegroup(
name = "public_hdrs",
srcs = ["include/eetcd.hrl"],
srcs = [
"include/eetcd.hrl",
],
)
filegroup(
@ -161,7 +161,9 @@ filegroup(
filegroup(
name = "licenses",
srcs = ["LICENSE"],
srcs = [
"LICENSE",
],
)
filegroup(

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -9,6 +10,13 @@ load(
"rabbitmq_integration_suite",
"rabbitmq_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "amqp10_client"
@ -36,76 +44,85 @@ APP_EXTRA_KEYS = """%% Hex.pm package informations.
]}
"""
EXTRA_APPS = [
"public_key",
"ssl",
"inets",
"crypto",
]
all_beam_files(name = "all_beam_files")
BUILD_DEPS = [
"//deps/rabbit_common:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
DEPS = [
"//deps/amqp10_common:erlang_app",
]
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_extra_app ssl
# gazelle:erlang_app_extra_app inets
# gazelle:erlang_app_extra_app crypto
# gazelle:erlang_app_extra_app public_key
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_extra_keys = APP_EXTRA_KEYS,
app_module = APP_MODULE,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
extra_apps = EXTRA_APPS,
deps = DEPS,
beam_files = [":beam_files"],
extra_apps = [
"crypto",
"inets",
"ssl",
"public_key",
],
license_files = [":license_files"],
priv = [":priv"],
deps = ["//deps/amqp10_common:erlang_app"],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = BUILD_DEPS + DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
plt = ":base_plt",
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":deps_plt",
target = ":erlang_app",
)
broker_for_integration_suites(
extra_plugins = ["//deps/rabbitmq_amqp1_0:erlang_app"],
)
TEST_DEPS = [
"//deps/amqp10_common:erlang_app",
]
rabbitmq_suite(
name = "msg_SUITE",
deps = DEPS,
deps = TEST_DEPS,
)
rabbitmq_integration_suite(
name = "system_SUITE",
size = "medium",
additional_hdrs = [
"src/amqp10_client.hrl",
],
additional_srcs = [
"test/activemq_ct_helpers.erl",
"test/mock_server.erl",
additional_beam = [
"test/activemq_ct_helpers.beam",
"test/mock_server.beam",
],
data = [
"@activemq//:exec_dir",
],
erlc_opts = [
"-I",
"deps/amqp10_client",
],
test_env = {
"ACTIVEMQ": "$TEST_SRCDIR/$TEST_WORKSPACE/external/activemq/bin/activemq",
},
deps = DEPS,
deps = TEST_DEPS,
)
assert_suites()
@ -115,3 +132,12 @@ alias(
actual = ":erlang_app",
visibility = ["//visibility:public"],
)
eunit(
name = "eunit",
compiled_suites = [
":test_activemq_ct_helpers_beam",
":test_mock_server_beam",
],
target = ":test_erlang_app",
)

102
deps/amqp10_client/app.bzl vendored Normal file
View File

@ -0,0 +1,102 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "amqp10_client",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = ["//deps/amqp10_common:erlang_app"],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "amqp10_client",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp10_common:erlang_app"],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "msg_SUITE_beam_files",
testonly = True,
srcs = ["test/msg_SUITE.erl"],
outs = ["test/msg_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp10_common:erlang_app"],
)
erlang_bytecode(
name = "system_SUITE_beam_files",
testonly = True,
srcs = ["test/system_SUITE.erl"],
outs = ["test/system_SUITE.beam"],
hdrs = ["src/amqp10_client.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp10_common:erlang_app"],
)
erlang_bytecode(
name = "test_activemq_ct_helpers_beam",
testonly = True,
srcs = ["test/activemq_ct_helpers.erl"],
outs = ["test/activemq_ct_helpers.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_mock_server_beam",
testonly = True,
srcs = ["test/mock_server.erl"],
outs = ["test/mock_server.beam"],
hdrs = ["src/amqp10_client.hrl"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -16,7 +16,7 @@
recv_amqp_header_step/1
]).
-include_lib("src/amqp10_client.hrl").
-include("amqp10_client.hrl").
start(Port) ->
{ok, LSock} = gen_tcp:listen(Port, [binary, {packet, 0}, {active, false}]),

View File

@ -12,7 +12,7 @@
-include_lib("amqp10_common/include/amqp10_framing.hrl").
-include_lib("src/amqp10_client.hrl").
-include("amqp10_client.hrl").
-compile(export_all).

View File

@ -1,5 +1,6 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
@ -7,6 +8,13 @@ load(
"rabbitmq_app",
"rabbitmq_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
py_binary(
name = "codegen",
@ -62,19 +70,42 @@ APP_EXTRA_KEYS = """%% Hex.pm package informations.
]}
"""
all_beam_files(name = "all_beam_files")
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = "Modules shared by rabbitmq-amqp1.0 and rabbitmq-amqp1.0-client",
app_extra_keys = APP_EXTRA_KEYS,
app_name = "amqp10_common",
extra_hdrs = ["include/amqp10_framing.hrl"],
extra_srcs = ["src/amqp10_framing0.erl"],
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "deps_plt",
for_target = ":erlang_app",
plt = "//:base_plt",
)
dialyze(
plt = "//:base_plt",
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":deps_plt",
target = ":erlang_app",
)
rabbitmq_suite(
@ -92,3 +123,8 @@ alias(
actual = ":erlang_app",
visibility = ["//visibility:public"],
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)

108
deps/amqp10_common/app.bzl vendored Normal file
View File

@ -0,0 +1,108 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = [
"src/amqp10_framing0.erl",
] + native.glob(
["src/**/*.erl"],
exclude = [
"src/amqp10_framing0.erl", # keep
],
),
hdrs = [":public_and_private_hdrs"],
app_name = "amqp10_common",
dest = "ebin",
erlc_opts = "//:erlc_opts",
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = [
"src/amqp10_framing0.erl",
] + native.glob(
["src/**/*.erl"],
exclude = [
"src/amqp10_framing0.erl", # keep
],
),
hdrs = [":public_and_private_hdrs"],
app_name = "amqp10_common",
dest = "test",
erlc_opts = "//:test_erlc_opts",
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "srcs",
srcs = [
"src/amqp10_framing0.erl",
] + native.glob([
"src/**/*.app.src",
"src/**/*.erl",
], exclude = [
"src/amqp10_framing0.erl", # keep
]),
)
filegroup(
name = "public_hdrs",
srcs = [
"include/amqp10_framing.hrl",
] + native.glob(
["include/**/*.hrl"],
exclude = [
"include/amqp10_framing.hrl", # keep
],
),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "binary_generator_SUITE_beam_files",
testonly = True,
srcs = ["test/binary_generator_SUITE.erl"],
outs = ["test/binary_generator_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "binary_parser_SUITE_beam_files",
testonly = True,
srcs = ["test/binary_parser_SUITE.erl"],
outs = ["test/binary_parser_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
@ -10,6 +11,13 @@ load(
"rabbitmq_integration_suite",
"rabbitmq_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_ENV = """[
{prefer_ipv6, false},
@ -37,17 +45,22 @@ APP_EXTRA_KEYS = """%% Hex.pm package informations.
]}
"""
EXTRA_APPS = [
"xmerl",
"ssl",
"public_key",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/rabbit_common:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_extra_app xmerl
# gazelle:erlang_app_extra_app ssl
# gazelle:erlang_app_extra_app public_key
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = "RabbitMQ AMQP Client",
app_env = APP_ENV,
app_extra_keys = APP_EXTRA_KEYS,
@ -56,23 +69,37 @@ rabbitmq_app(
app_registered = [
"amqp_sup",
],
extra_apps = EXTRA_APPS,
deps = DEPS,
beam_files = [":beam_files"],
extra_apps = [
"xmerl",
"public_key",
"ssl",
],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit_common:erlang_app",
"@credentials_obfuscation//:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
rabbitmq_home(
@ -90,7 +117,7 @@ rabbitmq_run(
rabbitmq_integration_suite(
name = "system_SUITE",
size = "large",
runtime_deps = [
deps = [
"@meck//:erlang_app",
],
)
@ -98,10 +125,8 @@ rabbitmq_integration_suite(
rabbitmq_suite(
name = "unit_SUITE",
size = "small",
runtime_deps = [
"//deps/rabbit:erlang_app",
],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
@ -113,3 +138,8 @@ alias(
actual = ":erlang_app",
visibility = ["//visibility:public"],
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)

View File

@ -40,7 +40,7 @@ endef
PACKAGES_DIR ?= $(abspath PACKAGES)
LOCAL_DEPS = xmerl
DEPS = rabbit_common
DEPS = rabbit_common credentials_obfuscation
TEST_DEPS = rabbitmq_ct_helpers rabbit meck
DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-test.mk

128
deps/amqp_client/app.bzl vendored Normal file
View File

@ -0,0 +1,128 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":behaviours", ":other_beam"],
)
erlang_bytecode(
name = "behaviours",
srcs = [
"src/amqp_gen_connection.erl",
"src/amqp_gen_consumer.erl",
],
hdrs = [":public_and_private_hdrs"],
app_name = "amqp_client",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(
["src/**/*.erl"],
exclude = [
"src/amqp_gen_connection.erl",
"src/amqp_gen_consumer.erl",
],
),
hdrs = [":public_and_private_hdrs"],
app_name = "amqp_client",
beam = [":behaviours"],
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_behaviours", ":test_other_beam"],
)
erlang_bytecode(
name = "test_behaviours",
testonly = True,
srcs = [
"src/amqp_gen_connection.erl",
"src/amqp_gen_consumer.erl",
],
hdrs = [":public_and_private_hdrs"],
app_name = "amqp_client",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(
["src/**/*.erl"],
exclude = [
"src/amqp_gen_connection.erl",
"src/amqp_gen_consumer.erl",
],
),
hdrs = [":public_and_private_hdrs"],
app_name = "amqp_client",
beam = [":test_behaviours"],
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "system_SUITE_beam_files",
testonly = True,
srcs = ["test/system_SUITE.erl"],
outs = ["test/system_SUITE.beam"],
hdrs = ["include/amqp_client.hrl", "include/amqp_client_internal.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
erlang_bytecode(
name = "unit_SUITE_beam_files",
testonly = True,
srcs = ["test/unit_SUITE.erl"],
outs = ["test/unit_SUITE.beam"],
hdrs = ["include/amqp_client.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
@ -9,9 +10,15 @@ load(
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_suite",
"rabbitmq_test_helper",
"without",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
load(":bats.bzl", "bats")
exports_files(glob([
@ -142,27 +149,6 @@ _APP_ENV = """[
]
"""
DEPS = [
"//deps/amqp10_common:erlang_app",
"//deps/rabbit_common:erlang_app",
"@cuttlefish//:erlang_app",
"@ra//:erlang_app",
"@ranch//:erlang_app",
"@stdout_formatter//:erlang_app",
"@syslog//:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit/apps/rabbitmq_prelaunch:erlang_app",
"@observer_cli//:erlang_app",
"@osiris//:erlang_app",
"@recon//:erlang_app",
"@redbug//:erlang_app",
"@seshat//:erlang_app",
"@sysmon_handler//:erlang_app",
"@systemd//:erlang_app",
]
APP_MODULE = "rabbit"
APP_REGISTERED = [
@ -173,51 +159,96 @@ APP_REGISTERED = [
"rabbit_router",
]
EXTRA_APPS = [
"sasl",
"rabbitmq_prelaunch",
"os_mon",
"inets",
"compiler",
"public_key",
"crypto",
"ssl",
"syntax_tools",
"xmerl",
]
all_beam_files(name = "all_beam_files")
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_apps_dirs apps
# gazelle:erlang_app_extra_app sasl
# gazelle:erlang_app_extra_app os_mon
# gazelle:erlang_app_extra_app inets
# gazelle:erlang_app_extra_app compiler
# gazelle:erlang_app_extra_app crypto
# gazelle:erlang_app_extra_app public_key
# gazelle:erlang_app_extra_app ssl
# gazelle:erlang_app_extra_app syntax_tools
# gazelle:erlang_app_extra_app xmerl
# gazelle:erlang_app_dep cuttlefish
# gazelle:erlang_app_dep syslog
# gazelle:erlang_app_dep observer_cli
# gazelle:erlang_app_dep redbug
# gazelle:erlang_app_dep sysmon_handler
# gazelle:erlang_app_dep systemd
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = "RabbitMQ",
app_env = _APP_ENV,
app_module = APP_MODULE,
app_name = "rabbit",
app_registered = APP_REGISTERED,
extra_apps = EXTRA_APPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
extra_apps = [
"compiler",
"inets",
"os_mon",
"public_key",
"sasl",
"ssl",
"syntax_tools",
"xmerl",
"crypto",
],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/amqp10_common:erlang_app",
"//deps/rabbit/apps/rabbitmq_prelaunch:erlang_app",
"//deps/rabbit_common:erlang_app",
"@cuttlefish//:erlang_app",
"@observer_cli//:erlang_app",
"@osiris//:erlang_app",
"@ra//:erlang_app",
"@ranch//:erlang_app",
"@recon//:erlang_app",
"@redbug//:erlang_app",
"@seshat//:erlang_app",
"@stdout_formatter//:erlang_app",
"@syslog//:erlang_app",
"@sysmon_handler//:erlang_app",
"@systemd//:erlang_app",
],
)
xref()
plt_apps = [
"mnesia",
"runtime_tools",
] + EXTRA_APPS
plt_apps.remove("rabbitmq_prelaunch")
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
apps = plt_apps,
plt = "//:base_plt",
deps = DEPS + RUNTIME_DEPS,
name = "deps_plt",
apps = [
"mnesia", # keep
],
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
# A few `lg` functions are unknown
dialyzer_opts = without("-Wunknown", RABBITMQ_DIALYZER_OPTS),
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
bats(
@ -246,42 +277,6 @@ rabbitmq_run(
home = ":broker-for-tests-home",
)
rabbitmq_test_helper(
name = "quorum_queue_utils",
srcs = [
"test/quorum_queue_utils.erl",
],
)
rabbitmq_test_helper(
name = "rabbit_ha_test_consumer",
srcs = [
"test/rabbit_ha_test_consumer.erl",
],
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
rabbitmq_test_helper(
name = "rabbit_ha_test_producer",
srcs = [
"test/rabbit_ha_test_producer.erl",
],
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
rabbitmq_test_helper(
name = "test_util",
srcs = [
"test/test_util.erl",
],
)
rabbitmq_suite(
name = "amqqueue_backward_compatibility_SUITE",
size = "small",
@ -295,17 +290,17 @@ rabbitmq_integration_suite(
rabbitmq_integration_suite(
name = "channel_interceptor_SUITE",
size = "medium",
additional_srcs = [
"test/dummy_interceptor.erl",
"test/failing_dummy_interceptor.erl",
additional_beam = [
"test/dummy_interceptor.beam",
"test/failing_dummy_interceptor.beam",
],
)
rabbitmq_integration_suite(
name = "channel_operation_timeout_SUITE",
size = "medium",
additional_srcs = [
"test/channel_operation_timeout_test_queue.erl",
additional_beam = [
"test/channel_operation_timeout_test_queue.beam",
],
)
@ -356,7 +351,7 @@ rabbitmq_integration_suite(
name = "consumer_timeout_SUITE",
size = "medium",
additional_beam = [
":quorum_queue_utils",
":test_quorum_queue_utils_beam",
],
)
@ -369,7 +364,7 @@ rabbitmq_integration_suite(
name = "dead_lettering_SUITE",
size = "large",
additional_beam = [
":quorum_queue_utils",
":test_quorum_queue_utils_beam",
],
flaky = True,
shard_count = 7,
@ -405,7 +400,7 @@ rabbitmq_integration_suite(
name = "dynamic_qq_SUITE",
size = "large",
additional_beam = [
":quorum_queue_utils",
":test_quorum_queue_utils_beam",
],
flaky = True,
deps = [
@ -490,7 +485,7 @@ rabbitmq_integration_suite(
name = "maintenance_mode_SUITE",
size = "medium",
additional_beam = [
":quorum_queue_utils",
":test_quorum_queue_utils_beam",
],
)
@ -498,8 +493,8 @@ rabbitmq_integration_suite(
name = "many_node_ha_SUITE",
size = "medium",
additional_beam = [
":rabbit_ha_test_consumer",
":rabbit_ha_test_producer",
":test_rabbit_ha_test_consumer_beam",
":test_rabbit_ha_test_producer_beam",
],
)
@ -524,8 +519,8 @@ rabbitmq_integration_suite(
rabbitmq_integration_suite(
name = "mirrored_supervisor_SUITE",
size = "small",
additional_srcs = [
"test/mirrored_supervisor_SUITE_gs.erl",
additional_beam = [
"test/mirrored_supervisor_SUITE_gs.beam",
],
)
@ -619,7 +614,7 @@ rabbitmq_integration_suite(
name = "publisher_confirms_parallel_SUITE",
size = "medium",
additional_beam = [
":quorum_queue_utils",
":test_quorum_queue_utils_beam",
],
)
@ -638,7 +633,7 @@ rabbitmq_integration_suite(
name = "queue_parallel_SUITE",
size = "large",
additional_beam = [
":quorum_queue_utils",
":test_quorum_queue_utils_beam",
],
flaky = True,
shard_count = 6,
@ -653,7 +648,7 @@ rabbitmq_integration_suite(
name = "quorum_queue_SUITE",
size = "large",
additional_beam = [
":quorum_queue_utils",
":test_quorum_queue_utils_beam",
],
flaky = True,
shard_count = 6,
@ -672,49 +667,38 @@ rabbitmq_integration_suite(
size = "medium",
)
rabbitmq_suite(
name = "rabbit_cuttlefish_SUITE",
)
rabbitmq_suite(
name = "rabbit_fifo_int_SUITE",
size = "medium",
runtime_deps = [
deps = [
"//deps/rabbit_common:erlang_app",
"@aten//:erlang_app",
"@gen_batch_server//:erlang_app",
"@meck//:erlang_app",
"@ra//:erlang_app",
],
deps = [
"//deps/rabbit_common:erlang_app",
],
)
rabbitmq_suite(
name = "rabbit_fifo_prop_SUITE",
size = "large",
additional_beam = [
":test_util",
],
additional_hdrs = [
"src/rabbit_fifo.hrl",
],
erlc_opts = [
"-I",
"deps/rabbit", # allow rabbit_fifo.hrl to be included at src/rabbit_fifo.hrl
],
runtime_deps = [
"@ra//:erlang_app",
":test_test_util_beam",
],
deps = [
"//deps/rabbit_common:erlang_app",
"@proper//:erlang_app",
"@ra//:erlang_app",
],
)
rabbitmq_suite(
name = "rabbit_fifo_dlx_SUITE",
size = "small",
additional_hdrs = [
"src/rabbit_fifo.hrl",
"src/rabbit_fifo_dlx.hrl",
],
deps = [
"//deps/rabbit_common:erlang_app",
],
@ -724,19 +708,13 @@ rabbitmq_integration_suite(
name = "rabbit_fifo_dlx_integration_SUITE",
size = "medium",
additional_beam = [
":test_util",
":quorum_queue_utils",
":test_test_util_beam",
":test_quorum_queue_utils_beam",
":quorum_queue_SUITE_beam_files",
],
additional_hdrs = [
"src/rabbit_fifo.hrl",
"src/rabbit_fifo_dlx.hrl",
],
runtime_deps = [
"@ra//:erlang_app",
],
deps = [
"@proper//:erlang_app",
"@ra//:erlang_app",
],
)
@ -744,18 +722,13 @@ rabbitmq_suite(
name = "rabbit_fifo_SUITE",
size = "medium",
additional_beam = [
":test_util",
":test_test_util_beam",
":rabbit_fifo_v0_SUITE_beam_files",
],
additional_hdrs = [
"src/rabbit_fifo.hrl",
],
runtime_deps = [
"@meck//:erlang_app",
"@ra//:erlang_app",
],
deps = [
"//deps/rabbit_common:erlang_app",
"@meck//:erlang_app",
"@ra//:erlang_app",
],
)
@ -763,21 +736,12 @@ rabbitmq_suite(
name = "rabbit_fifo_v0_SUITE",
size = "medium",
additional_beam = [
":test_util",
],
additional_hdrs = [
"src/rabbit_fifo_v0.hrl",
],
erlc_opts = [
"-I",
"deps/rabbit", # allow rabbit_fifo.hrl to be included at src/rabbit_fifo.hrl
],
runtime_deps = [
"@meck//:erlang_app",
"@ra//:erlang_app",
":test_test_util_beam",
],
deps = [
"//deps/rabbit_common:erlang_app",
"@meck//:erlang_app",
"@ra//:erlang_app",
],
)
@ -811,7 +775,7 @@ rabbitmq_integration_suite(
name = "rabbit_stream_queue_SUITE",
size = "large",
additional_beam = [
":quorum_queue_utils",
":test_quorum_queue_utils_beam",
],
flaky = True,
shard_count = 12,
@ -845,8 +809,8 @@ rabbitmq_integration_suite(
name = "simple_ha_SUITE",
size = "large",
additional_beam = [
":rabbit_ha_test_consumer",
":rabbit_ha_test_producer",
":test_rabbit_ha_test_consumer_beam",
":test_rabbit_ha_test_producer_beam",
],
shard_count = 4,
)
@ -855,7 +819,7 @@ rabbitmq_integration_suite(
name = "single_active_consumer_SUITE",
size = "medium",
additional_beam = [
":quorum_queue_utils",
":test_quorum_queue_utils_beam",
],
)
@ -879,9 +843,9 @@ rabbitmq_integration_suite(
rabbitmq_integration_suite(
name = "unit_access_control_authn_authz_context_propagation_SUITE",
size = "medium",
additional_srcs = [
"test/rabbit_auth_backend_context_propagation_mock.erl",
"test/rabbit_foo_protocol_connection_info.erl",
additional_beam = [
"test/rabbit_auth_backend_context_propagation_mock.beam",
"test/rabbit_foo_protocol_connection_info.beam",
],
)
@ -896,8 +860,8 @@ rabbitmq_integration_suite(
rabbitmq_integration_suite(
name = "unit_access_control_SUITE",
size = "medium",
additional_srcs = [
"test/rabbit_dummy_protocol_connection_info.erl",
additional_beam = [
"test/rabbit_dummy_protocol_connection_info.beam",
],
)
@ -922,7 +886,7 @@ rabbitmq_integration_suite(
rabbitmq_suite(
name = "unit_cluster_formation_locking_mocks_SUITE",
size = "small",
runtime_deps = [
deps = [
"@meck//:erlang_app",
],
)
@ -930,7 +894,7 @@ rabbitmq_suite(
rabbitmq_suite(
name = "unit_collections_SUITE",
size = "small",
runtime_deps = [
deps = [
"//deps/rabbit_common:erlang_app",
],
)
@ -938,7 +902,7 @@ rabbitmq_suite(
rabbitmq_suite(
name = "unit_config_value_encryption_SUITE",
size = "medium",
runtime_deps = [
deps = [
"//deps/rabbit/apps/rabbitmq_prelaunch:test_erlang_app",
"//deps/rabbit_common:test_erlang_app",
"@credentials_obfuscation//:erlang_app",
@ -973,7 +937,7 @@ rabbitmq_integration_suite(
rabbitmq_suite(
name = "unit_gm_SUITE",
size = "small",
runtime_deps = [
deps = [
"//deps/rabbitmq_ct_helpers:erlang_app",
"@meck//:erlang_app",
],
@ -1028,16 +992,16 @@ rabbitmq_suite(
rabbitmq_integration_suite(
name = "unit_stats_and_metrics_SUITE",
size = "medium",
additional_srcs = [
"test/dummy_event_receiver.erl",
additional_beam = [
"test/dummy_event_receiver.beam",
],
)
rabbitmq_suite(
name = "unit_supervisor2_SUITE",
size = "small",
additional_srcs = [
"test/dummy_supervisor2.erl",
additional_beam = [
"test/dummy_supervisor2.beam",
],
)
@ -1054,8 +1018,8 @@ rabbitmq_integration_suite(
rabbitmq_integration_suite(
name = "vhost_SUITE",
size = "medium",
additional_srcs = [
"test/test_rabbit_event_handler.erl",
additional_beam = [
"test/test_rabbit_event_handler.beam",
],
flaky = True,
)
@ -1076,25 +1040,17 @@ rabbitmq_suite(
],
)
rabbitmq_suite(
name = "rabbit_cuttlefish_SUITE",
size = "small",
deps = [
"@cuttlefish//:erlang_app",
],
)
rabbitmq_integration_suite(
name = "direct_exchange_routing_v2_SUITE",
size = "medium",
additional_beam = [
":quorum_queue_utils",
":test_quorum_queue_utils_beam",
],
)
rabbitmq_integration_suite(
name = "rabbit_direct_reply_to_prop_SUITE",
size = "small",
size = "medium",
deps = [
"@proper//:erlang_app",
],
@ -1102,14 +1058,14 @@ rabbitmq_integration_suite(
rabbitmq_integration_suite(
name = "unicode_SUITE",
size = "small",
size = "medium",
)
rabbitmq_integration_suite(
name = "exchanges_SUITE",
size = "small",
size = "medium",
additional_beam = [
":quorum_queue_utils",
":test_quorum_queue_utils_beam",
],
)
@ -1120,37 +1076,37 @@ rabbitmq_integration_suite(
rabbitmq_integration_suite(
name = "rabbit_db_queue_SUITE",
size = "small",
size = "medium",
)
rabbitmq_integration_suite(
name = "rabbit_db_maintenance_SUITE",
size = "small",
size = "medium",
)
rabbitmq_integration_suite(
name = "rabbit_db_topic_exchange_SUITE",
size = "small",
size = "medium",
)
rabbitmq_integration_suite(
name = "rabbit_db_exchange_SUITE",
size = "small",
size = "medium",
)
rabbitmq_integration_suite(
name = "rabbit_db_binding_SUITE",
size = "small",
size = "medium",
)
rabbitmq_integration_suite(
name = "rabbit_db_msup_SUITE",
size = "small",
size = "medium",
)
rabbitmq_integration_suite(
name = "rabbit_db_policy_SUITE",
size = "small",
size = "medium",
)
assert_suites()
@ -1223,3 +1179,31 @@ rm -dr web-manpages-tmp
""",
visibility = ["//visibility:public"],
)
alias(
name = "rabbit",
actual = ":erlang_app",
visibility = ["//visibility:public"],
)
eunit(
name = "eunit",
compiled_suites = [
":test_channel_operation_timeout_test_queue_beam",
":test_dummy_event_receiver_beam",
":test_dummy_interceptor_beam",
":test_dummy_runtime_parameters_beam",
":test_dummy_supervisor2_beam",
":test_failing_dummy_interceptor_beam",
":test_mirrored_supervisor_SUITE_gs_beam",
":test_quorum_queue_utils_beam",
":test_rabbit_auth_backend_context_propagation_mock_beam",
":test_rabbit_dummy_protocol_connection_info_beam",
":test_rabbit_foo_protocol_connection_info_beam",
":test_rabbit_ha_test_consumer_beam",
":test_rabbit_ha_test_producer_beam",
":test_test_util_beam",
":test_test_rabbit_event_handler_beam",
],
target = ":test_erlang_app",
)

1209
deps/rabbit/app.bzl vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +1,21 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
"//:rabbitmq.bzl",
"APP_VERSION",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"rabbitmq_app",
"rabbitmq_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_prelaunch"
@ -14,56 +23,83 @@ APP_DESCRIPTION = "RabbitMQ prelaunch setup"
APP_MODULE = "rabbit_prelaunch_app"
RUNTIME_DEPS = [
"@cuttlefish//:erlang_app",
"@thoas//:erlang_app",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/rabbit_common:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_dep thoas
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
app_version = APP_VERSION,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit_common:erlang_app",
"@cuttlefish//:erlang_app",
"@thoas//:erlang_app",
],
)
xref(
name = "xref",
additional_libs = [
"@systemd//:erlang_app",
"@osiris//:erlang_app",
"@systemd//:erlang_app", # keep
"@osiris//:erlang_app", # keep
],
target = ":erlang_app",
)
plt(
name = "base_plt",
name = "deps_plt",
apps = [
"runtime_tools",
"eunit",
],
plt = "//:base_plt",
deps = DEPS + RUNTIME_DEPS + [
"@systemd//:erlang_app",
"@osiris//:erlang_app",
"runtime_tools", # keep
"eunit", # keep
],
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
deps = [
"@osiris//:erlang_app", # keep
"@systemd//:erlang_app", # keep
],
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
suites = [
rabbitmq_suite(
name = "rabbit_logger_std_h_SUITE",
),
rabbitmq_suite(
name = "rabbit_prelaunch_file_SUITE",
size = "small",
),
]
eunit(
name = "eunit",
target = ":test_erlang_app",
)
rabbitmq_suite(
name = "rabbit_logger_std_h_SUITE",
)
rabbitmq_suite(
name = "rabbit_prelaunch_file_SUITE",
size = "small",
)
assert_suites()
alias(
name = "rabbitmq_prelaunch",
actual = ":erlang_app",
visibility = ["//visibility:public"],
)

View File

@ -0,0 +1,84 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_prelaunch",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_prelaunch",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "rabbit_logger_std_h_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_logger_std_h_SUITE.erl"],
outs = ["test/rabbit_logger_std_h_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "rabbit_prelaunch_file_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_prelaunch_file_SUITE.erl"],
outs = ["test/rabbit_prelaunch_file_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -9,7 +9,7 @@
-behaviour(rabbit_runtime_parameter).
-behaviour(rabbit_policy_validator).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([validate/5, notify/5, notify_clear/4]).
-export([register/0, unregister/0]).

View File

@ -1,15 +1,115 @@
load("@rules_erlang//:erlang_app.bzl", "erlang_app")
load("//:rabbitmq.bzl", "BROKER_VERSION_REQUIREMENTS_ANY")
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load(
"//:rabbitmq.bzl",
"BROKER_VERSION_REQUIREMENTS_ANY",
"rabbitmq_app",
)
DEPS = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
]
# gazelle:erlang_generate_beam_files_macro false
# gazelle:erlang_always_generate_test_beam_files
# gazelle:erlang_skip_rules assert_suites2,xref,plt,dialyze
erlang_app(
# gazelle:erlang_app_dep rabbit_common
# gazelle:erlang_app_dep rabbit
erlang_bytecode(
name = "other_beam",
srcs = [
"src/my_plugin.erl",
],
hdrs = [":public_and_private_hdrs"],
app_name = "my_plugin",
dest = "ebin",
erlc_opts = "//:erlc_opts",
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = [
"src/my_plugin.erl",
],
hdrs = [":public_and_private_hdrs"],
app_name = "my_plugin",
dest = "test",
erlc_opts = "//:test_erlc_opts",
)
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
filegroup(
name = "srcs",
srcs = [
"src/my_plugin.erl",
],
)
filegroup(
name = "private_hdrs",
srcs = glob(["src/**/*.hrl"]),
)
filegroup(
name = "public_hdrs",
srcs = glob(["include/**/*.hrl"]),
)
filegroup(
name = "priv",
srcs = glob(["priv/**/*"]),
)
filegroup(name = "licenses")
filegroup(
name = "public_and_private_hdrs",
srcs = [
":private_hdrs",
":public_hdrs",
],
)
filegroup(
name = "all_srcs",
srcs = [
":public_and_private_hdrs",
":srcs",
],
)
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = "Plugin to test feature flags",
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_name = "my_plugin",
app_version = "1.0.0",
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
alias(
name = "my_plugin",
actual = ":erlang_app",
visibility = ["//visibility:public"],
)
filegroup(
name = "license_files",
srcs = glob(["LICENSE*"]),
)

View File

@ -13,7 +13,7 @@
-include_lib("eunit/include/eunit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include_lib("rabbit_common/include/rabbit_framing.hrl").
-include_lib("rabbit/src/rabbit_fifo.hrl").
-include("rabbit_fifo.hrl").
%%%===================================================================
%%% Common Test callbacks

View File

@ -10,8 +10,8 @@
-compile(export_all).
-include_lib("eunit/include/eunit.hrl").
-include_lib("rabbit/src/rabbit_fifo.hrl").
-include_lib("rabbit/src/rabbit_fifo_dlx.hrl").
-include("rabbit_fifo.hrl").
-include("rabbit_fifo_dlx.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
%%%===================================================================

View File

@ -9,8 +9,8 @@
-include_lib("proper/include/proper.hrl").
-include_lib("common_test/include/ct.hrl").
-include_lib("eunit/include/eunit.hrl").
-include_lib("rabbit/src/rabbit_fifo.hrl").
-include_lib("rabbit/src/rabbit_fifo_dlx.hrl").
-include("rabbit_fifo.hrl").
-include("rabbit_fifo_dlx.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-define(record_info(T,R),lists:zip(record_info(fields,T),tl(tuple_to_list(R)))).

View File

@ -11,7 +11,7 @@
-include_lib("common_test/include/ct.hrl").
-include_lib("eunit/include/eunit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include("src/rabbit_fifo_v0.hrl").
-include("rabbit_fifo_v0.hrl").
%%%===================================================================
%%% Common Test callbacks

View File

@ -8,7 +8,7 @@
-include_lib("eunit/include/eunit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include_lib("rabbit/src/rabbit_stream_coordinator.hrl").
-include("rabbit_stream_coordinator.hrl").
-define(STATE, rabbit_stream_coordinator).

View File

@ -19,7 +19,7 @@
-compile(export_all).
-include_lib("eunit/include/eunit.hrl").
-include_lib("rabbit/src/rabbit_stream_sac_coordinator.hrl").
-include("rabbit_stream_sac_coordinator.hrl").
%%%===================================================================
%%% Common Test callbacks

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -7,6 +8,13 @@ load(
"rabbitmq_app",
"rabbitmq_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
py_binary(
name = "codegen",
@ -52,15 +60,6 @@ genrule(
tools = [":codegen"],
)
RUNTIME_DEPS = [
"@thoas//:erlang_app",
"@recon//:erlang_app",
"@credentials_obfuscation//:erlang_app",
"@ranch//:erlang_app",
]
APP_NAME = "rabbit_common"
APP_EXTRA_KEYS = """
%% Hex.pm package informations.
{licenses, ["MPL-2.0"]},
@ -82,47 +81,77 @@ APP_EXTRA_KEYS = """
]}
"""
EXTRA_APPS = [
"compiler",
"crypto",
"public_key",
"sasl",
"ssl",
"syntax_tools",
"tools",
"xmerl",
"runtime_tools",
"os_mon",
]
# gazelle:erlang_app_extra_app compiler
# gazelle:erlang_app_extra_app crypto
# gazelle:erlang_app_extra_app public_key
# gazelle:erlang_app_extra_app sasl
# gazelle:erlang_app_extra_app ssl
# gazelle:erlang_app_extra_app syntax_tools
# gazelle:erlang_app_extra_app tools
# gazelle:erlang_app_extra_app xmerl
# gazelle:erlang_app_extra_app runtime_tools
# gazelle:erlang_app_extra_app os_mon
# gazelle:erlang_app_dep_exclude ranch
all_beam_files(name = "all_beam_files")
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = "Modules shared by rabbitmq-server and rabbitmq-erlang-client",
app_extra_keys = APP_EXTRA_KEYS,
app_name = APP_NAME,
extra_apps = EXTRA_APPS,
extra_hdrs = [
"include/rabbit_framing.hrl",
app_name = "rabbit_common",
beam_files = [":beam_files"],
extra_apps = [
"compiler",
"crypto",
"public_key",
"sasl",
"ssl",
"syntax_tools",
"tools",
"xmerl",
"os_mon",
"runtime_tools",
],
extra_srcs = [
"src/rabbit_framing_amqp_0_8.erl",
"src/rabbit_framing_amqp_0_9_1.erl",
license_files = [":license_files"],
priv = [":priv"],
deps = [
"@credentials_obfuscation//:erlang_app",
"@ranch//:erlang_app", # keep
"@recon//:erlang_app",
"@thoas//:erlang_app",
],
runtime_deps = RUNTIME_DEPS,
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
apps = EXTRA_APPS + ["mnesia"],
plt = "//:base_plt",
deps = RUNTIME_DEPS,
name = "deps_plt",
apps = [
"mnesia", # keep
],
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
rabbitmq_suite(
@ -136,8 +165,8 @@ rabbitmq_suite(
rabbitmq_suite(
name = "supervisor2_SUITE",
size = "small",
additional_srcs = [
"test/test_event_handler.erl",
additional_beam = [
"test/test_event_handler.beam",
],
)
@ -154,8 +183,8 @@ rabbitmq_suite(
rabbitmq_suite(
name = "unit_SUITE",
size = "medium",
additional_srcs = [
"test/gen_server2_test_server.erl",
additional_beam = [
"test/gen_server2_test_server.beam",
],
deps = [
"@credentials_obfuscation//:erlang_app",
@ -175,3 +204,12 @@ alias(
actual = ":erlang_app",
visibility = ["//visibility:public"],
)
eunit(
name = "eunit",
compiled_suites = [
":test_gen_server2_test_server_beam",
":test_test_event_handler_beam",
],
target = ":test_erlang_app",
)

203
deps/rabbit_common/app.bzl vendored Normal file
View File

@ -0,0 +1,203 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":behaviours", ":other_beam"],
)
erlang_bytecode(
name = "behaviours",
srcs = [
"src/gen_server2.erl",
"src/rabbit_authn_backend.erl",
"src/rabbit_authz_backend.erl",
"src/rabbit_password_hashing.erl",
"src/rabbit_registry_class.erl",
],
hdrs = [":public_and_private_hdrs"],
app_name = "rabbit_common",
dest = "ebin",
erlc_opts = "//:erlc_opts",
)
erlang_bytecode(
name = "other_beam",
srcs = [
"src/rabbit_framing_amqp_0_8.erl",
"src/rabbit_framing_amqp_0_9_1.erl",
] + native.glob(
["src/**/*.erl"],
exclude = [
"src/gen_server2.erl",
"src/rabbit_authn_backend.erl",
"src/rabbit_authz_backend.erl",
"src/rabbit_framing_amqp_0_8.erl", # keep
"src/rabbit_framing_amqp_0_9_1.erl", # keep
"src/rabbit_password_hashing.erl",
"src/rabbit_registry_class.erl",
],
),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbit_common",
beam = [":behaviours"],
dest = "ebin",
erlc_opts = "//:erlc_opts",
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_behaviours", ":test_other_beam"],
)
erlang_bytecode(
name = "test_behaviours",
testonly = True,
srcs = [
"src/gen_server2.erl",
"src/rabbit_authn_backend.erl",
"src/rabbit_authz_backend.erl",
"src/rabbit_password_hashing.erl",
"src/rabbit_registry_class.erl",
],
hdrs = [":public_and_private_hdrs"],
app_name = "rabbit_common",
dest = "test",
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = [
"src/rabbit_framing_amqp_0_8.erl",
"src/rabbit_framing_amqp_0_9_1.erl",
] + native.glob(
["src/**/*.erl"],
exclude = [
"src/gen_server2.erl",
"src/rabbit_authn_backend.erl",
"src/rabbit_authz_backend.erl",
"src/rabbit_framing_amqp_0_8.erl", # keep
"src/rabbit_framing_amqp_0_9_1.erl", # keep
"src/rabbit_password_hashing.erl",
"src/rabbit_registry_class.erl",
],
),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbit_common",
beam = [":test_behaviours"],
dest = "test",
erlc_opts = "//:test_erlc_opts",
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "srcs",
srcs = [
"src/rabbit_framing_amqp_0_8.erl",
"src/rabbit_framing_amqp_0_9_1.erl",
] + native.glob([
"src/**/*.app.src",
"src/**/*.erl",
], exclude = [
"src/rabbit_framing_amqp_0_8.erl", # keep
"src/rabbit_framing_amqp_0_9_1.erl", # keep
]),
)
filegroup(
name = "public_hdrs",
srcs = [
"include/rabbit_framing.hrl",
] + native.glob(
["include/**/*.hrl"],
exclude = [
"include/rabbit_framing.hrl", # keep
],
),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "rabbit_env_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_env_SUITE.erl"],
outs = ["test/rabbit_env_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "supervisor2_SUITE_beam_files",
testonly = True,
srcs = ["test/supervisor2_SUITE.erl"],
outs = ["test/supervisor2_SUITE.beam"],
hdrs = ["include/rabbit.hrl", "include/resource.hrl"],
beam = ["ebin/supervisor2.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_gen_server2_test_server_beam",
testonly = True,
srcs = ["test/gen_server2_test_server.erl"],
outs = ["test/gen_server2_test_server.beam"],
beam = ["ebin/gen_server2.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_test_event_handler_beam",
testonly = True,
srcs = ["test/test_event_handler.erl"],
outs = ["test/test_event_handler.beam"],
hdrs = ["include/rabbit.hrl", "include/resource.hrl"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "unit_SUITE_beam_files",
testonly = True,
srcs = ["test/unit_SUITE.erl"],
outs = ["test/unit_SUITE.beam"],
hdrs = ["include/rabbit.hrl", "include/rabbit_memory.hrl", "include/resource.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["@proper//:erlang_app"],
)
erlang_bytecode(
name = "unit_priority_queue_SUITE_beam_files",
testonly = True,
srcs = ["test/unit_priority_queue_SUITE.erl"],
outs = ["test/unit_priority_queue_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "worker_pool_SUITE_beam_files",
testonly = True,
srcs = ["test/worker_pool_SUITE.erl"],
outs = ["test/worker_pool_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "unit_password_hashing_SUITE_beam_files",
testonly = True,
srcs = ["test/unit_password_hashing_SUITE.erl"],
outs = ["test/unit_password_hashing_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -9,7 +10,13 @@ load(
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_suite",
"without",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_ENV = """[
@ -22,49 +29,64 @@ APP_NAME = "rabbitmq_amqp1_0"
APP_DESCRIPTION = "AMQP 1.0 support for RabbitMQ"
BUILD_DEPS = [
"//deps/rabbitmq_cli:erlang_app",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/rabbit_common:erlang_app",
"//deps/amqp_client:erlang_app",
"//deps/amqp10_common:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
]
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/amqp10_common:erlang_app",
"//deps/amqp_client:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
xref(
additional_libs = BUILD_DEPS,
name = "xref",
additional_libs = [
"//deps/rabbitmq_cli:erlang_app", # keep
],
target = ":erlang_app",
)
plt(
name = "base_plt",
name = "deps_plt",
apps = [
"ssl",
"ssl", # keep
],
libs = ["//deps/rabbitmq_cli:elixir"],
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS + RUNTIME_DEPS,
for_target = ":erlang_app",
ignore_warnings = True,
libs = ["//deps/rabbitmq_cli:elixir"], # keep
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:erlang_app"], # keep
)
dialyze(
name = "dialyze",
size = "medium",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()

128
deps/rabbitmq_amqp1_0/app.bzl vendored Normal file
View File

@ -0,0 +1,128 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_amqp1_0",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/amqp10_common:erlang_app",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_amqp1_0",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/amqp10_common:erlang_app",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "amqp10_client_SUITE_beam_files",
testonly = True,
srcs = ["test/amqp10_client_SUITE.erl"],
outs = ["test/amqp10_client_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "command_SUITE_beam_files",
testonly = True,
srcs = ["test/command_SUITE.erl"],
outs = ["test/command_SUITE.beam"],
hdrs = ["include/rabbit_amqp1_0.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp10_common:erlang_app", "//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "config_schema_SUITE_beam_files",
testonly = True,
srcs = ["test/config_schema_SUITE.erl"],
outs = ["test/config_schema_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "proxy_protocol_SUITE_beam_files",
testonly = True,
srcs = ["test/proxy_protocol_SUITE.erl"],
outs = ["test/proxy_protocol_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "system_SUITE_beam_files",
testonly = True,
srcs = ["test/system_SUITE.erl"],
outs = ["test/system_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
erlang_bytecode(
name = "unit_SUITE_beam_files",
testonly = True,
srcs = ["test/unit_SUITE.erl"],
outs = ["test/unit_SUITE.beam"],
hdrs = ["include/rabbit_amqp1_0.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp10_common:erlang_app"],
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -10,6 +11,13 @@ load(
"rabbitmq_integration_suite",
"rabbitmq_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_ENV = """[
{cache_ttl, 15000},
@ -25,36 +33,56 @@ APP_DESCRIPTION = "RabbitMQ Authentication Backend cache"
APP_MODULE = "rabbit_auth_backend_cache_app"
DEPS = [
"//deps/rabbit_common:erlang_app",
]
all_beam_files(name = "all_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_dep rabbit
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_module = APP_MODULE,
app_name = APP_NAME,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
deps = DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()
@ -69,7 +97,7 @@ rabbitmq_integration_suite(
rabbitmq_suite(
name = "rabbit_auth_cache_SUITE",
runtime_deps = [
deps = [
"//deps/rabbitmq_ct_helpers:erlang_app",
],
)

121
deps/rabbitmq_auth_backend_cache/app.bzl vendored Normal file
View File

@ -0,0 +1,121 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":behaviours", ":other_beam"],
)
erlang_bytecode(
name = "behaviours",
srcs = ["src/rabbit_auth_cache.erl"],
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_auth_backend_cache",
dest = "ebin",
erlc_opts = "//:erlc_opts",
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(
["src/**/*.erl"],
exclude = [
"src/rabbit_auth_cache.erl",
],
),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_auth_backend_cache",
beam = [":behaviours"],
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_behaviours", ":test_other_beam"],
)
erlang_bytecode(
name = "test_behaviours",
testonly = True,
srcs = ["src/rabbit_auth_cache.erl"],
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_auth_backend_cache",
dest = "test",
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(
["src/**/*.erl"],
exclude = [
"src/rabbit_auth_cache.erl",
],
),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_auth_backend_cache",
beam = [":test_behaviours"],
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "config_schema_SUITE_beam_files",
testonly = True,
srcs = ["test/config_schema_SUITE.erl"],
outs = ["test/config_schema_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "rabbit_auth_backend_cache_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_auth_backend_cache_SUITE.erl"],
outs = ["test/rabbit_auth_backend_cache_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
erlang_bytecode(
name = "rabbit_auth_cache_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_auth_cache_SUITE.erl"],
outs = ["test/rabbit_auth_cache_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -10,6 +11,13 @@ load(
"rabbitmq_integration_suite",
"rabbitmq_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_ENV = """[
{http_method, get},
@ -25,43 +33,61 @@ APP_DESCRIPTION = "RabbitMQ HTTP Authentication Backend"
APP_MODULE = "rabbit_auth_backend_http_app"
EXTRA_APPS = [
"inets",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/rabbit_common:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
"//deps/amqp_client:erlang_app",
]
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_extra_app inets
# gazelle:erlang_app_dep rabbit
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_module = APP_MODULE,
app_name = APP_NAME,
extra_apps = EXTRA_APPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
extra_apps = ["inets"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = DEPS + RUNTIME_DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
compiled_suites = [":test_auth_http_mock_beam"],
target = ":test_erlang_app",
)
broker_for_integration_suites()
@ -69,14 +95,12 @@ broker_for_integration_suites()
rabbitmq_suite(
name = "auth_SUITE",
size = "small",
additional_srcs = [
"test/auth_http_mock.erl",
],
runtime_deps = [
"@cowboy//:erlang_app",
additional_beam = [
"test/auth_http_mock.beam",
],
deps = [
"//deps/rabbit_common:erlang_app",
"@cowboy//:erlang_app",
],
)

100
deps/rabbitmq_auth_backend_http/app.bzl vendored Normal file
View File

@ -0,0 +1,100 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_auth_backend_http",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_auth_backend_http",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "auth_SUITE_beam_files",
testonly = True,
srcs = ["test/auth_SUITE.erl"],
outs = ["test/auth_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
erlang_bytecode(
name = "config_schema_SUITE_beam_files",
testonly = True,
srcs = ["test/config_schema_SUITE.erl"],
outs = ["test/config_schema_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_auth_http_mock_beam",
testonly = True,
srcs = ["test/auth_http_mock.erl"],
outs = ["test/auth_http_mock.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "unit_SUITE_beam_files",
testonly = True,
srcs = ["test/unit_SUITE.erl"],
outs = ["test/unit_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -10,6 +11,13 @@ load(
"rabbitmq_integration_suite",
"rabbitmq_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_ENV = """[
{servers, undefined},
@ -41,43 +49,62 @@ APP_DESCRIPTION = "RabbitMQ LDAP Authentication Backend"
APP_MODULE = "rabbit_auth_backend_ldap_app"
EXTRA_APPS = [
"eldap",
"public_key",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/rabbit_common:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
]
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_extra_app eldap
# gazelle:erlang_app_extra_app public_key
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_module = APP_MODULE,
app_name = APP_NAME,
extra_apps = EXTRA_APPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
extra_apps = [
"eldap",
"public_key",
],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = DEPS + RUNTIME_DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
compiled_suites = [":test_rabbit_ldap_seed_beam"],
target = ":test_erlang_app",
)
broker_for_integration_suites()
@ -89,8 +116,8 @@ rabbitmq_integration_suite(
rabbitmq_integration_suite(
name = "system_SUITE",
size = "medium",
additional_srcs = [
"test/rabbit_ldap_seed.erl",
additional_beam = [
"test/rabbit_ldap_seed.beam",
],
data = [
"example/global.ldif",

99
deps/rabbitmq_auth_backend_ldap/app.bzl vendored Normal file
View File

@ -0,0 +1,99 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_auth_backend_ldap",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_auth_backend_ldap",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "config_schema_SUITE_beam_files",
testonly = True,
srcs = ["test/config_schema_SUITE.erl"],
outs = ["test/config_schema_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "system_SUITE_beam_files",
testonly = True,
srcs = ["test/system_SUITE.erl"],
outs = ["test/system_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "test_rabbit_ldap_seed_beam",
testonly = True,
srcs = ["test/rabbit_ldap_seed.erl"],
outs = ["test/rabbit_ldap_seed.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "unit_SUITE_beam_files",
testonly = True,
srcs = ["test/unit_SUITE.erl"],
outs = ["test/unit_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -8,61 +9,83 @@ load(
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_suite",
"rabbitmq_test_helper",
"without",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_auth_backend_oauth2"
all_beam_files(name = "all_beam_files")
APP_DESCRIPTION = "OAuth 2 and JWT-based AuthN and AuthZ backend"
all_test_beam_files(name = "all_test_beam_files")
EXTRA_APPS = [
"inets",
"public_key",
]
all_srcs(name = "all_srcs")
BUILD_DEPS = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
]
test_suite_beam_files(name = "test_suite_beam_files")
DEPS = [
"@jose//:erlang_app",
]
# gazelle:erlang_app_extra_app inets
# gazelle:erlang_app_extra_app public_key
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
"@base64url//:erlang_app",
"@cowlib//:erlang_app",
]
# gazelle:erlang_app_dep rabbit
# gazelle:erlang_app_dep_exclude rabbit_common
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
extra_apps = EXTRA_APPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
)
xref(
additional_libs = [
"//deps/rabbitmq_cli:erlang_app",
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = "OAuth 2 and JWT-based AuthN and AuthZ backend",
app_name = "rabbitmq_auth_backend_oauth2",
beam_files = [":beam_files"],
extra_apps = [
"inets",
"public_key",
],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"@base64url//:erlang_app",
"@cowlib//:erlang_app",
"@jose//:erlang_app",
],
)
xref(
name = "xref",
additional_libs = [
"//deps/rabbitmq_cli:erlang_app", # keep
],
target = ":erlang_app",
)
plt(
name = "base_plt",
apps = EXTRA_APPS,
libs = ["//deps/rabbitmq_cli:elixir"],
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS + RUNTIME_DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
libs = ["//deps/rabbitmq_cli:elixir"], # keep
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:erlang_app"], # keep
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
compiled_suites = [
":test_jwks_http_app_beam",
":test_jwks_http_handler_beam",
":test_jwks_http_sup_beam",
":test_rabbit_auth_backend_oauth2_test_util_beam",
],
target = ":test_erlang_app",
)
broker_for_integration_suites(
@ -71,13 +94,6 @@ broker_for_integration_suites(
],
)
rabbitmq_test_helper(
name = "rabbit_auth_backend_oauth2_test_util",
srcs = [
"test/rabbit_auth_backend_oauth2_test_util.erl",
],
)
rabbitmq_integration_suite(
name = "add_uaa_key_command_SUITE",
size = "small",
@ -90,14 +106,12 @@ rabbitmq_integration_suite(
rabbitmq_integration_suite(
name = "jwks_SUITE",
additional_beam = [
":rabbit_auth_backend_oauth2_test_util",
"test/rabbit_auth_backend_oauth2_test_util.beam",
"test/jwks_http_app.beam",
"test/jwks_http_handler.beam",
"test/jwks_http_sup.beam",
],
additional_srcs = [
"test/jwks_http_app.erl",
"test/jwks_http_handler.erl",
"test/jwks_http_sup.erl",
],
runtime_deps = [
deps = [
"@cowboy//:erlang_app",
],
)
@ -114,7 +128,7 @@ rabbitmq_integration_suite(
name = "system_SUITE",
size = "medium",
additional_beam = [
":rabbit_auth_backend_oauth2_test_util",
"test/rabbit_auth_backend_oauth2_test_util.beam",
],
runtime_deps = [
"@emqtt//:erlang_app",
@ -125,7 +139,7 @@ rabbitmq_integration_suite(
name = "unit_SUITE",
size = "medium",
additional_beam = [
":rabbit_auth_backend_oauth2_test_util",
"test/rabbit_auth_backend_oauth2_test_util.beam",
],
)

View File

@ -0,0 +1,162 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_auth_backend_oauth2",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
"@jose//:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_auth_backend_oauth2",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
"@jose//:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "add_uaa_key_command_SUITE_beam_files",
testonly = True,
srcs = ["test/add_uaa_key_command_SUITE.erl"],
outs = ["test/add_uaa_key_command_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
erlang_bytecode(
name = "config_schema_SUITE_beam_files",
testonly = True,
srcs = ["test/config_schema_SUITE.erl"],
outs = ["test/config_schema_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "jwks_SUITE_beam_files",
testonly = True,
srcs = ["test/jwks_SUITE.erl"],
outs = ["test/jwks_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "scope_SUITE_beam_files",
testonly = True,
srcs = ["test/scope_SUITE.erl"],
outs = ["test/scope_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
erlang_bytecode(
name = "system_SUITE_beam_files",
testonly = True,
srcs = ["test/system_SUITE.erl"],
outs = ["test/system_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "test_jwks_http_app_beam",
testonly = True,
srcs = ["test/jwks_http_app.erl"],
outs = ["test/jwks_http_app.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_jwks_http_handler_beam",
testonly = True,
srcs = ["test/jwks_http_handler.erl"],
outs = ["test/jwks_http_handler.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["@cowboy//:erlang_app"],
)
erlang_bytecode(
name = "test_jwks_http_sup_beam",
testonly = True,
srcs = ["test/jwks_http_sup.erl"],
outs = ["test/jwks_http_sup.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_rabbit_auth_backend_oauth2_test_util_beam",
testonly = True,
srcs = ["test/rabbit_auth_backend_oauth2_test_util.erl"],
outs = ["test/rabbit_auth_backend_oauth2_test_util.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "unit_SUITE_beam_files",
testonly = True,
srcs = ["test/unit_SUITE.erl"],
outs = ["test/unit_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
erlang_bytecode(
name = "wildcard_match_SUITE_beam_files",
testonly = True,
srcs = ["test/wildcard_match_SUITE.erl"],
outs = ["test/wildcard_match_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -4,8 +4,15 @@ load(
"//:rabbitmq.bzl",
"BROKER_VERSION_REQUIREMENTS_ANY",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"rabbitmq_app",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
)
APP_NAME = "rabbitmq_auth_mechanism_ssl"
@ -17,40 +24,56 @@ APP_ENV = """[
{name_from, distinguished_name}
]"""
DEPS = [
"//deps/rabbit_common:erlang_app",
]
all_beam_files(name = "all_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
]
all_test_beam_files()
EXTRA_APPS = [
"public_key",
]
all_srcs(name = "all_srcs")
# gazelle:erlang_app_extra_app public_key
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_module = APP_MODULE,
app_name = APP_NAME,
extra_apps = EXTRA_APPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
extra_apps = ["public_key"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = DEPS + RUNTIME_DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
assert_suites()
alias(
name = "rabbitmq_auth_mechanism_ssl",
actual = ":erlang_app",
visibility = ["//visibility:public"],
)

View File

@ -0,0 +1,72 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_auth_mechanism_ssl",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_auth_mechanism_ssl",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
def test_suite_beam_files(name = "test_suite_beam_files"):
pass

View File

@ -1,10 +1,18 @@
load("@rules_erlang//:eunit.bzl", "eunit")
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load("//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"RABBITMQ_TEST_ERLC_OPTS",
"rabbitmq_app",
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"rabbitmq_app",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_aws"
@ -17,55 +25,95 @@ APP_REGISTERED = [
"rabbitmq_aws",
]
EXTRA_APPS = [
"crypto",
"inets",
"public_key",
"ssl",
"xmerl",
]
all_beam_files(name = "all_beam_files")
BUILD_DEPS = [
"//deps/rabbit_common:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_extra_app crypto
# gazelle:erlang_app_extra_app inets
# gazelle:erlang_app_extra_app public_key
# gazelle:erlang_app_extra_app ssl
# gazelle:erlang_app_extra_app xmerl
# gazelle:erlang_app_dep_exclude rabbit_common
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
app_registered = APP_REGISTERED,
build_deps = BUILD_DEPS,
extra_apps = EXTRA_APPS,
beam_files = [":beam_files"],
extra_apps = [
"crypto",
"inets",
"ssl",
"xmerl",
"public_key",
],
license_files = [":license_files"],
priv = [":priv"],
)
xref(
name = "xref",
additional_libs = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbit_common:erlang_app", # keep
],
target = ":erlang_app",
)
plt(
name = "base_plt",
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = BUILD_DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
deps = [
"//deps/rabbit_common:erlang_app", # keep
],
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
erlc_opts = RABBITMQ_TEST_ERLC_OPTS + [
"-I",
"deps/rabbitmq_aws",
"+nowarn_export_all",
name = "eunit",
compiled_suites = [
":test_rabbitmq_aws_all_tests_beam",
":test_rabbitmq_aws_app_tests_beam",
":test_rabbitmq_aws_config_tests_beam",
":test_rabbitmq_aws_json_tests_beam",
":test_rabbitmq_aws_sign_tests_beam",
":test_rabbitmq_aws_sup_tests_beam",
":test_rabbitmq_aws_tests_beam",
":test_rabbitmq_aws_urilib_tests_beam",
":test_rabbitmq_aws_xml_tests_beam",
],
runtime_deps = [
"//deps/rabbit_common:erlang_app",
"@meck//:erlang_app",
"@thoas//:erlang_app",
data = [
"test/test_aws_config.ini",
"test/test_aws_credentials.ini",
],
target = ":test_erlang_app",
deps = [
"//deps/rabbit_common:erlang_app", # keep
"@meck//:erlang_app", # keep
"@thoas//:erlang_app", # keep
],
)
assert_suites()
alias(
name = "rabbitmq_aws",
actual = ":erlang_app",
visibility = ["//visibility:public"],
)

137
deps/rabbitmq_aws/app.bzl vendored Normal file
View File

@ -0,0 +1,137 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_aws",
dest = "ebin",
erlc_opts = "//:erlc_opts",
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_aws",
dest = "test",
erlc_opts = "//:test_erlc_opts",
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "test_rabbitmq_aws_all_tests_beam",
testonly = True,
srcs = ["test/rabbitmq_aws_all_tests.erl"],
outs = ["test/rabbitmq_aws_all_tests.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_rabbitmq_aws_app_tests_beam",
testonly = True,
srcs = ["test/rabbitmq_aws_app_tests.erl"],
outs = ["test/rabbitmq_aws_app_tests.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_rabbitmq_aws_config_tests_beam",
testonly = True,
srcs = ["test/rabbitmq_aws_config_tests.erl"],
outs = ["test/rabbitmq_aws_config_tests.beam"],
hdrs = ["include/rabbitmq_aws.hrl"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_rabbitmq_aws_json_tests_beam",
testonly = True,
srcs = ["test/rabbitmq_aws_json_tests.erl"],
outs = ["test/rabbitmq_aws_json_tests.beam"],
hdrs = ["include/rabbitmq_aws.hrl"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_rabbitmq_aws_sign_tests_beam",
testonly = True,
srcs = ["test/rabbitmq_aws_sign_tests.erl"],
outs = ["test/rabbitmq_aws_sign_tests.beam"],
hdrs = ["include/rabbitmq_aws.hrl"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_rabbitmq_aws_sup_tests_beam",
testonly = True,
srcs = ["test/rabbitmq_aws_sup_tests.erl"],
outs = ["test/rabbitmq_aws_sup_tests.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_rabbitmq_aws_tests_beam",
testonly = True,
srcs = ["test/rabbitmq_aws_tests.erl"],
outs = ["test/rabbitmq_aws_tests.beam"],
hdrs = ["include/rabbitmq_aws.hrl"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_rabbitmq_aws_urilib_tests_beam",
testonly = True,
srcs = ["test/rabbitmq_aws_urilib_tests.erl"],
outs = ["test/rabbitmq_aws_urilib_tests.beam"],
hdrs = ["include/rabbitmq_aws.hrl"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_rabbitmq_aws_xml_tests_beam",
testonly = True,
srcs = ["test/rabbitmq_aws_xml_tests.erl"],
outs = ["test/rabbitmq_aws_xml_tests.beam"],
hdrs = ["include/rabbitmq_aws.hrl"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -437,7 +437,7 @@ setup_test_config_env_var() ->
setup_test_file_with_env_var(EnvVar, Filename) ->
os:putenv(EnvVar,
filename:join([filename:absname("."), "test", "src",
filename:join([filename:absname("."), "test",
Filename])).
setup_test_credentials_env_var() ->

View File

@ -2,7 +2,7 @@
-include_lib("eunit/include/eunit.hrl").
-include("include/rabbitmq_aws.hrl").
-include("rabbitmq_aws.hrl").
init_test_() ->
{foreach,

View File

@ -242,6 +242,9 @@ def _elixir_app_to_erlang_app(ctx):
ebin = ctx.actions.declare_directory(path_join(ctx.label.name, "ebin"))
if ctx.attr.mode == "elixir":
if len(ctx.attr.deps) > 0:
fail("deps cannot be specified in the 'elixir' mode")
ctx.actions.run_shell(
inputs = ctx.files.elixir_as_app + ctx.files.elixir_app,
outputs = [ebin],
@ -268,6 +271,8 @@ done
include = lib_info.include,
beam = [ebin],
priv = lib_info.priv,
license_files = lib_info.license_files,
srcs = lib_info.srcs,
deps = lib_info.deps,
),
]
@ -297,12 +302,14 @@ done
lib_info = ctx.attr.elixir_app[ElixirAppInfo]
deps = lib_info.deps + ctx.attr.deps
runfiles = ctx.runfiles([ebin]).merge_all([
erlang_runfiles,
elixir_runfiles,
] + [
dep[DefaultInfo].default_runfiles
for dep in lib_info.deps
for dep in deps
])
return [
@ -318,7 +325,7 @@ done
priv = lib_info.priv,
license_files = lib_info.license_files,
srcs = lib_info.srcs,
deps = lib_info.deps,
deps = deps,
),
]
@ -339,6 +346,9 @@ elixir_app_to_erlang_app = rule(
"app",
],
),
"deps": attr.label_list(
providers = [ErlangAppInfo],
),
},
toolchains = [
"//bazel/elixir:toolchain_type",
@ -387,4 +397,5 @@ def rabbitmqctl(
elixir_app = ":" + name,
mode = "app",
visibility = visibility,
deps = [":elixir"],
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -9,49 +10,72 @@ load(
"rabbitmq_app",
"rabbitmq_integration_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_consistent_hash_exchange"
APP_DESCRIPTION = "Consistent Hash Exchange Type"
BUILD_DEPS = [
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/rabbit_common:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
]
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
xref(
additional_libs = BUILD_DEPS,
name = "xref",
additional_libs = [
"//deps/rabbitmq_cli:erlang_app", # keep
],
target = ":erlang_app",
)
plt(
name = "base_plt",
apps = ["mnesia"],
libs = ["//deps/rabbitmq_cli:elixir"],
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS,
name = "deps_plt",
apps = [
"mnesia", # keep
],
for_target = ":erlang_app",
ignore_warnings = True,
libs = ["//deps/rabbitmq_cli:elixir"], # keep
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:erlang_app"], # keep
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()

View File

@ -0,0 +1,88 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_consistent_hash_exchange",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_consistent_hash_exchange",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "rabbit_exchange_type_consistent_hash_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_exchange_type_consistent_hash_SUITE.erl"],
outs = ["test/rabbit_exchange_type_consistent_hash_SUITE.beam"],
hdrs = ["include/rabbitmq_consistent_hash_exchange.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"],
)

View File

@ -1,12 +1,73 @@
load("@rules_erlang//:erlang_app.bzl", "erlang_app")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load("@rules_erlang//:xref2.bzl", "xref")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"rabbitmq_app",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
erlang_app(
# gazelle:erlang_app_testonly
# gazelle:erlang_always_generate_test_beam_files
all_beam_files(name = "all_beam_files")
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
rabbitmq_app(
name = "erlang_app",
testonly = True,
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_name = "rabbitmq_ct_client_helpers",
app_version = "main",
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_ct_helpers:erlang_app",
],
)
alias(
name = "rabbitmq_ct_client_helpers",
actual = ":erlang_app",
visibility = ["//visibility:public"],
)
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "deps_plt",
apps = [
"common_test", # keep
],
for_target = ":erlang_app",
ignore_warnings = True,
libs = ["//deps/rabbitmq_cli:elixir"], # keep
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":deps_plt",
target = ":erlang_app",
)
assert_suites()

81
deps/rabbitmq_ct_client_helpers/app.bzl vendored Normal file
View File

@ -0,0 +1,81 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
testonly = True,
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_ct_client_helpers",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
testonly = True,
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
testonly = True,
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
testonly = True,
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "srcs",
testonly = True,
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "private_hdrs",
testonly = True,
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "public_hdrs",
testonly = True,
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
testonly = True,
srcs = native.glob(["LICENSE*"]),
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_ct_client_helpers",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
def test_suite_beam_files(name = "test_suite_beam_files"):
pass

View File

@ -1,16 +1,114 @@
load("@rules_erlang//:erlang_app.bzl", "erlang_app")
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
erlang_app(
all_beam_files(name = "all_beam_files")
all_srcs(name = "all_srcs")
all_test_beam_files(name = "all_test_beam_files")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_testonly
# gazelle:erlang_app_dep meck
# gazelle:erlang_app_dep_exclude rabbit
# gazelle:erlang_app_dep_exclude rabbitmq_prelaunch
# gazelle:erlang_app_dep_exclude rabbitmq_management_agent
rabbitmq_app(
name = "erlang_app",
testonly = True,
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_name = "rabbitmq_ct_helpers",
app_version = "main",
extra_priv = [
"tools/tls-certs/Makefile",
"tools/tls-certs/openssl.cnf.in",
],
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit_common:erlang_app",
"@proper//:erlang_app",
"@meck//:erlang_app",
"@proper//:erlang_app",
],
)
alias(
name = "rabbitmq_ct_helpers",
actual = ":erlang_app",
visibility = ["//visibility:public"],
)
xref(
name = "xref",
additional_libs = [
"//deps/rabbitmq_cli:elixir", # keep
"//deps/rabbitmq_cli:erlang_app", # keep
"//deps/rabbit:erlang_app", # keep
"//deps/rabbit/apps/rabbitmq_prelaunch:erlang_app", # keep
"//deps/rabbitmq_management_agent:erlang_app", # keep
"@proper//:erlang_app", # keep
],
target = ":erlang_app",
)
plt(
name = "deps_plt",
apps = [
"common_test", # keep
"eunit", # keep
"inets", # keep
],
for_target = ":erlang_app",
ignore_warnings = True,
libs = [
"//deps/rabbitmq_cli:elixir", # keep
],
plt = "//:base_plt",
deps = [
"//deps/rabbit:erlang_app", # keep
"//deps/rabbit/apps/rabbitmq_prelaunch:erlang_app", # keep
"//deps/rabbitmq_cli:elixir", # keep
"//deps/rabbitmq_cli:erlang_app", # keep
"//deps/rabbitmq_management_agent:erlang_app", # keep
"@proper//:erlang_app", # keep
],
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":deps_plt",
target = ":erlang_app",
warnings_as_errors = False,
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()
rabbitmq_integration_suite(
name = "terraform_SUITE",
# requires SSH_KEY to create vms, skip running as part of CI
tags = ["manual"],
)
assert_suites()

97
deps/rabbitmq_ct_helpers/app.bzl vendored Normal file
View File

@ -0,0 +1,97 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
testonly = True,
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_ct_helpers",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/rabbit_common:erlang_app",
"@proper//:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_ct_helpers",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/rabbit_common:erlang_app",
"@proper//:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
testonly = True,
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
testonly = True,
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
testonly = True,
srcs = native.glob(
["tools/terraform/**/*"],
) + [
"tools/tls-certs/Makefile",
"tools/tls-certs/openssl.cnf.in",
], # keep
)
filegroup(
name = "srcs",
testonly = True,
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
testonly = True,
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "private_hdrs",
testonly = True,
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "license_files",
testonly = True,
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "terraform_SUITE_beam_files",
testonly = True,
srcs = ["test/terraform_SUITE.erl"],
outs = ["test/terraform_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -897,9 +897,8 @@ exec([Cmd | Args], Options) when is_list(Cmd) orelse is_binary(Cmd) ->
| proplists:delete(env, PortOptions1)],
Log ++ "~n~nEnvironment variables:~n" ++
string:join(
[string:replace(
rabbit_misc:format(" ~ts=~ts", [K, V]),
"~", "~~", all) || {K, V} <- Env1],
[rabbit_misc:format(" ~ts=~ts", [K, string:replace(V, "~", "~~", all)])
|| {K, V} <- Env1],
"~n")
}
end,

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -10,35 +11,64 @@ load(
"rabbitmq_integration_suite",
"rabbitmq_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_event_exchange"
APP_DESCRIPTION = "Event Exchange Type"
DEPS = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
]
all_beam_files(name = "all_beam_files")
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_name = APP_NAME,
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
deps = DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()
@ -53,7 +83,7 @@ rabbitmq_integration_suite(
rabbitmq_suite(
name = "unit_SUITE",
runtime_deps = [
deps = [
"//deps/rabbitmq_ct_helpers:erlang_app",
],
)

98
deps/rabbitmq_event_exchange/app.bzl vendored Normal file
View File

@ -0,0 +1,98 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_event_exchange",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_event_exchange",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "config_schema_SUITE_beam_files",
testonly = True,
srcs = ["test/config_schema_SUITE.erl"],
outs = ["test/config_schema_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "system_SUITE_beam_files",
testonly = True,
srcs = ["test/system_SUITE.erl"],
outs = ["test/system_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "unit_SUITE_beam_files",
testonly = True,
srcs = ["test/unit_SUITE.erl"],
outs = ["test/unit_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -9,7 +10,13 @@ load(
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_suite",
"rabbitmq_test_helper",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_federation"
@ -23,66 +30,70 @@ APP_ENV = """[
{internal_exchange_check_interval, 90000}
]"""
BUILD_DEPS = [
"//deps/rabbitmq_cli:erlang_app",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_module = APP_MODULE,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
deps = DEPS,
)
xref(
additional_libs = BUILD_DEPS,
)
plt(
name = "base_plt",
plt = "//:base_plt",
libs = ["//deps/rabbitmq_cli:elixir"],
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS,
ignore_warnings = True,
)
dialyze(
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
)
broker_for_integration_suites()
rabbitmq_test_helper(
name = "rabbit_federation_test_util",
srcs = [
"test/rabbit_federation_test_util.erl",
],
hdrs = glob([
"include/**/*.hrl",
"src/**/*.hrl",
]),
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
":test_erlang_app",
"//deps/amqp_client:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
xref(
name = "xref",
additional_libs = [
"//deps/rabbitmq_cli:erlang_app", # keep
],
target = ":erlang_app",
)
plt(
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
libs = ["//deps/rabbitmq_cli:elixir"], # keep
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:erlang_app"], # keep
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
compiled_suites = [":test_rabbit_federation_test_util_beam"],
target = ":test_erlang_app",
)
broker_for_integration_suites()
rabbitmq_integration_suite(
name = "exchange_SUITE",
size = "large",
additional_beam = [
":rabbit_federation_test_util",
"test/rabbit_federation_test_util.beam",
],
flaky = True,
shard_count = 2,
@ -91,14 +102,14 @@ rabbitmq_integration_suite(
rabbitmq_integration_suite(
name = "federation_status_command_SUITE",
additional_beam = [
":rabbit_federation_test_util",
"test/rabbit_federation_test_util.beam",
],
)
rabbitmq_integration_suite(
name = "queue_SUITE",
additional_beam = [
":rabbit_federation_test_util",
"test/rabbit_federation_test_util.beam",
],
flaky = True,
shard_count = 6,
@ -107,7 +118,7 @@ rabbitmq_integration_suite(
rabbitmq_integration_suite(
name = "rabbit_federation_status_SUITE",
additional_beam = [
":rabbit_federation_test_util",
"test/rabbit_federation_test_util.beam",
":exchange_SUITE_beam_files",
":queue_SUITE_beam_files",
],
@ -116,7 +127,7 @@ rabbitmq_integration_suite(
rabbitmq_integration_suite(
name = "restart_federation_link_command_SUITE",
additional_beam = [
":rabbit_federation_test_util",
"test/rabbit_federation_test_util.beam",
],
)

150
deps/rabbitmq_federation/app.bzl vendored Normal file
View File

@ -0,0 +1,150 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_federation",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_federation",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "exchange_SUITE_beam_files",
testonly = True,
srcs = ["test/exchange_SUITE.erl"],
outs = ["test/exchange_SUITE.beam"],
hdrs = ["include/rabbit_federation.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"],
)
erlang_bytecode(
name = "federation_status_command_SUITE_beam_files",
testonly = True,
srcs = ["test/federation_status_command_SUITE.erl"],
outs = ["test/federation_status_command_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "queue_SUITE_beam_files",
testonly = True,
srcs = ["test/queue_SUITE.erl"],
outs = ["test/queue_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "rabbit_federation_status_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_federation_status_SUITE.erl"],
outs = ["test/rabbit_federation_status_SUITE.beam"],
hdrs = ["include/rabbit_federation.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "restart_federation_link_command_SUITE_beam_files",
testonly = True,
srcs = ["test/restart_federation_link_command_SUITE.erl"],
outs = ["test/restart_federation_link_command_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "test_rabbit_federation_test_util_beam",
testonly = True,
srcs = ["test/rabbit_federation_test_util.erl"],
outs = ["test/rabbit_federation_test_util.beam"],
hdrs = ["include/rabbit_federation.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "unit_SUITE_beam_files",
testonly = True,
srcs = ["test/unit_SUITE.erl"],
outs = ["test/unit_SUITE.beam"],
hdrs = ["include/rabbit_federation.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "unit_inbroker_SUITE_beam_files",
testonly = True,
srcs = ["test/unit_inbroker_SUITE.erl"],
outs = ["test/unit_inbroker_SUITE.beam"],
hdrs = ["include/rabbit_federation.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -9,6 +10,13 @@ load(
"rabbitmq_app",
"rabbitmq_integration_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_federation_management"
@ -16,43 +24,63 @@ APP_DESCRIPTION = "RabbitMQ Federation Management"
APP_MODULE = "rabbit_federation_app"
BUILD_DEPS = [
"//deps/rabbitmq_management_agent:erlang_app",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/rabbitmq_management:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
RUNTIME_DEPS = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_federation:erlang_app",
]
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_dep amqp_client
# gazelle:erlang_app_dep rabbit_common
# gazelle:erlang_app_dep rabbit
# gazelle:erlang_app_dep rabbitmq_federation
# gazelle:erlang_app_dep_exclude rabbitmq_management_agent
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_module = APP_MODULE,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_federation:erlang_app",
"//deps/rabbitmq_management:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
deps = BUILD_DEPS + DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
libs = ["//deps/rabbitmq_cli:elixir"], # keep
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()

View File

@ -0,0 +1,85 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_federation_management",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/rabbitmq_management:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_federation_management",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/rabbitmq_management:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "federation_mgmt_SUITE_beam_files",
testonly = True,
srcs = ["test/federation_mgmt_SUITE.erl"],
outs = ["test/federation_mgmt_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"],
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -9,6 +10,13 @@ load(
"rabbitmq_integration_suite",
"rabbitmq_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_jms_topic_exchange"
@ -16,45 +24,55 @@ APP_DESCRIPTION = "RabbitMQ JMS topic selector exchange plugin"
APP_MODULE = "rabbit_federation_app"
BUILD_DEPS = [
"//deps/rabbit:erlang_app",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/rabbit_common:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
]
all_srcs(name = "all_srcs")
EXTRA_APPS = [
"mnesia",
]
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_extra_app mnesia
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
runtime_deps = RUNTIME_DEPS,
build_deps = BUILD_DEPS,
deps = DEPS,
extra_apps = EXTRA_APPS,
beam_files = [":beam_files"],
extra_apps = ["mnesia"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
apps = EXTRA_APPS,
deps = DEPS + RUNTIME_DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()

102
deps/rabbitmq_jms_topic_exchange/app.bzl vendored Normal file
View File

@ -0,0 +1,102 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_jms_topic_exchange",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_jms_topic_exchange",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "rjms_topic_selector_SUITE_beam_files",
testonly = True,
srcs = ["test/rjms_topic_selector_SUITE.erl"],
outs = ["test/rjms_topic_selector_SUITE.beam"],
hdrs = ["include/rabbit_jms_topic_exchange.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "rjms_topic_selector_unit_SUITE_beam_files",
testonly = True,
srcs = ["test/rjms_topic_selector_unit_SUITE.erl"],
outs = ["test/rjms_topic_selector_unit_SUITE.beam"],
hdrs = ["include/rabbit_jms_topic_exchange.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "sjx_evaluation_SUITE_beam_files",
testonly = True,
srcs = ["test/sjx_evaluation_SUITE.erl"],
outs = ["test/sjx_evaluation_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -10,7 +11,13 @@ load(
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_suite",
"rabbitmq_test_helper",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_management"
@ -19,13 +26,6 @@ APP_DESCRIPTION = "RabbitMQ Management Console"
APP_MODULE = "rabbit_mgmt_app"
EXTRA_APPS = [
"mnesia",
"ssl",
"crypto",
"public_key",
]
APP_ENV = """[
{http_log_dir, none},
{load_definitions, none},
@ -38,19 +38,6 @@ APP_ENV = """[
{content_security_policy, "script-src 'self' 'unsafe-eval' 'unsafe-inline'; object-src 'self'"}
]"""
DEPS = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbitmq_web_dispatch:erlang_app",
"@cowboy//:erlang_app",
"@cowlib//:erlang_app",
]
genrule(
name = "rabbitmqadmin",
srcs = ["bin/rabbitmqadmin"],
@ -61,52 +48,83 @@ sed 's/%%VSN%%/{}/' $< > $@
""".format(APP_VERSION),
)
all_beam_files(name = "all_beam_files")
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_extra_app mnesia
# gazelle:erlang_app_extra_app ssl
# gazelle:erlang_app_extra_app crypto
# gazelle:erlang_app_extra_app public_key
# gazelle:erlang_app_dep_exclude ranch
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_module = APP_MODULE,
app_name = APP_NAME,
extra_apps = EXTRA_APPS,
extra_priv = [":rabbitmqadmin"],
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
extra_apps = [
"crypto",
"mnesia",
"public_key",
"ssl",
],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
"//deps/rabbitmq_web_dispatch:erlang_app",
"@cowboy//:erlang_app",
"@cowlib//:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
apps = EXTRA_APPS,
deps = DEPS + RUNTIME_DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
libs = ["//deps/rabbitmq_cli:elixir"], # keep
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
compiled_suites = [":test_rabbit_mgmt_runtime_parameters_util_beam"],
target = ":test_erlang_app",
)
broker_for_integration_suites()
rabbitmq_test_helper(
name = "rabbit_mgmt_runtime_parameters_util",
srcs = [
"test/rabbit_mgmt_runtime_parameters_util.erl",
],
deps = [
"//deps/rabbit_common:erlang_app",
],
)
rabbitmq_suite(
name = "cache_SUITE",
size = "small",
runtime_deps = [
"//deps/rabbitmq_ct_helpers:erlang_app",
],
deps = [
"//deps/rabbitmq_ct_helpers:erlang_app",
"@proper//:erlang_app",
],
)
@ -146,7 +164,7 @@ rabbitmq_integration_suite(
name = "rabbit_mgmt_http_SUITE",
size = "large",
additional_beam = [
":rabbit_mgmt_runtime_parameters_util",
"test/rabbit_mgmt_runtime_parameters_util.beam",
],
shard_count = 2,
)
@ -158,7 +176,7 @@ rabbitmq_integration_suite(
rabbitmq_integration_suite(
name = "rabbit_mgmt_rabbitmqadmin_SUITE",
additional_beam = [
":rabbit_mgmt_runtime_parameters_util",
"test/rabbit_mgmt_runtime_parameters_util.beam",
],
data = [
":bin/rabbitmqadmin",
@ -168,10 +186,8 @@ rabbitmq_integration_suite(
rabbitmq_suite(
name = "rabbit_mgmt_stats_SUITE",
size = "small",
runtime_deps = [
"//deps/rabbitmq_ct_helpers:erlang_app",
],
deps = [
"//deps/rabbitmq_ct_helpers:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
"@proper//:erlang_app",
],

221
deps/rabbitmq_management/app.bzl vendored Normal file
View File

@ -0,0 +1,221 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":behaviours", ":other_beam"],
)
erlang_bytecode(
name = "behaviours",
srcs = ["src/rabbit_mgmt_extension.erl"],
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_management",
dest = "ebin",
erlc_opts = "//:erlc_opts",
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(
["src/**/*.erl"],
exclude = [
"src/rabbit_mgmt_extension.erl",
],
),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_management",
beam = [":behaviours"],
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_behaviours", ":test_other_beam"],
)
erlang_bytecode(
name = "test_behaviours",
testonly = True,
srcs = ["src/rabbit_mgmt_extension.erl"],
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_management",
dest = "test",
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(
["src/**/*.erl"],
exclude = [
"src/rabbit_mgmt_extension.erl",
],
),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_management",
beam = [":test_behaviours"],
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = [
"priv/www/cli/rabbitmqadmin",
] + native.glob(["priv/**/*"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "cache_SUITE_beam_files",
testonly = True,
srcs = ["test/cache_SUITE.erl"],
outs = ["test/cache_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["@proper//:erlang_app"],
)
erlang_bytecode(
name = "clustering_SUITE_beam_files",
testonly = True,
srcs = ["test/clustering_SUITE.erl"],
outs = ["test/clustering_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app", "//deps/rabbit_common:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app", "//deps/rabbitmq_management_agent:erlang_app"],
)
erlang_bytecode(
name = "clustering_prop_SUITE_beam_files",
testonly = True,
srcs = ["test/clustering_prop_SUITE.erl"],
outs = ["test/clustering_prop_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app", "//deps/rabbit_common:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app", "//deps/rabbitmq_management_agent:erlang_app", "@proper//:erlang_app"],
)
erlang_bytecode(
name = "config_schema_SUITE_beam_files",
testonly = True,
srcs = ["test/config_schema_SUITE.erl"],
outs = ["test/config_schema_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "listener_config_SUITE_beam_files",
testonly = True,
srcs = ["test/listener_config_SUITE.erl"],
outs = ["test/listener_config_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "rabbit_mgmt_http_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_mgmt_http_SUITE.erl"],
outs = ["test/rabbit_mgmt_http_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"],
)
erlang_bytecode(
name = "rabbit_mgmt_http_health_checks_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_mgmt_http_health_checks_SUITE.erl"],
outs = ["test/rabbit_mgmt_http_health_checks_SUITE.beam"],
hdrs = ["include/rabbit_mgmt.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"],
)
erlang_bytecode(
name = "rabbit_mgmt_only_http_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_mgmt_only_http_SUITE.erl"],
outs = ["test/rabbit_mgmt_only_http_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"],
)
erlang_bytecode(
name = "rabbit_mgmt_rabbitmqadmin_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_mgmt_rabbitmqadmin_SUITE.erl"],
outs = ["test/rabbit_mgmt_rabbitmqadmin_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "rabbit_mgmt_stats_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_mgmt_stats_SUITE.erl"],
outs = ["test/rabbit_mgmt_stats_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbitmq_management_agent:erlang_app", "@proper//:erlang_app"],
)
erlang_bytecode(
name = "rabbit_mgmt_test_db_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_mgmt_test_db_SUITE.erl"],
outs = ["test/rabbit_mgmt_test_db_SUITE.beam"],
hdrs = ["include/rabbit_mgmt.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app", "//deps/rabbitmq_management_agent:erlang_app"],
)
erlang_bytecode(
name = "rabbit_mgmt_test_unit_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_mgmt_test_unit_SUITE.erl"],
outs = ["test/rabbit_mgmt_test_unit_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "stats_SUITE_beam_files",
testonly = True,
srcs = ["test/stats_SUITE.erl"],
outs = ["test/stats_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbitmq_management_agent:erlang_app", "@proper//:erlang_app"],
)
erlang_bytecode(
name = "test_rabbit_mgmt_runtime_parameters_util_beam",
testonly = True,
srcs = ["test/rabbit_mgmt_runtime_parameters_util.erl"],
outs = ["test/rabbit_mgmt_runtime_parameters_util.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -10,6 +11,13 @@ load(
"rabbitmq_integration_suite",
"rabbitmq_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_ENV = """[
{rates_mode, basic},
@ -26,55 +34,75 @@ APP_DESCRIPTION = "RabbitMQ Management Agent"
APP_MODULE = "rabbit_mgmt_agent_app"
EXTRA_APPS = [
"xmerl",
"mnesia",
"ranch",
"ssl",
"crypto",
"public_key",
]
all_beam_files(name = "all_beam_files")
BUILD_DEPS = [
"//deps/rabbitmq_cli:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
DEPS = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
]
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_extra_app xmerl
# gazelle:erlang_app_extra_app mnesia
# gazelle:erlang_app_extra_app ssl
# gazelle:erlang_app_extra_app crypto
# gazelle:erlang_app_extra_app public_key
# gazelle:erlang_app_dep ranch
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_module = APP_MODULE,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
extra_apps = EXTRA_APPS,
deps = DEPS,
beam_files = [":beam_files"],
extra_apps = [
"crypto",
"mnesia",
"public_key",
"ssl",
"xmerl",
],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"@ranch//:erlang_app",
],
)
xref(
additional_libs = BUILD_DEPS,
name = "xref",
additional_libs = [
"//deps/rabbitmq_cli:erlang_app", # keep
],
target = ":erlang_app",
)
plt_apps = list(EXTRA_APPS)
plt_apps.remove("ranch")
plt(
name = "base_plt",
apps = plt_apps,
libs = ["//deps/rabbitmq_cli:elixir"],
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
libs = ["//deps/rabbitmq_cli:elixir"], # keep
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:erlang_app"], # keep
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()
@ -100,10 +128,8 @@ rabbitmq_integration_suite(
rabbitmq_suite(
name = "rabbit_mgmt_slide_SUITE",
size = "small",
runtime_deps = [
"//deps/rabbitmq_ct_helpers:erlang_app",
],
deps = [
"//deps/rabbitmq_ct_helpers:erlang_app",
"@proper//:erlang_app",
],
)

111
deps/rabbitmq_management_agent/app.bzl vendored Normal file
View File

@ -0,0 +1,111 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_management_agent",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_management_agent",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "exometer_slide_SUITE_beam_files",
testonly = True,
srcs = ["test/exometer_slide_SUITE.erl"],
outs = ["test/exometer_slide_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["@proper//:erlang_app"],
)
erlang_bytecode(
name = "metrics_SUITE_beam_files",
testonly = True,
srcs = ["test/metrics_SUITE.erl"],
outs = ["test/metrics_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "rabbit_mgmt_gc_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_mgmt_gc_SUITE.erl"],
outs = ["test/rabbit_mgmt_gc_SUITE.beam"],
hdrs = ["include/rabbit_mgmt_metrics.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "rabbit_mgmt_slide_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_mgmt_slide_SUITE.erl"],
outs = ["test/rabbit_mgmt_slide_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["@proper//:erlang_app"],
)

View File

@ -1,15 +1,23 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"BROKER_VERSION_REQUIREMENTS_ANY",
"ENABLE_FEATURE_MAYBE_EXPR",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_suite",
"rabbitmq_test_helper",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_mqtt"
@ -45,47 +53,73 @@ APP_ENV = """[
{mailbox_soft_limit, 200}
]"""
BUILD_DEPS = [
"//deps/rabbitmq_cli:erlang_app",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
"@ra//:erlang_app",
"@ranch//:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
EXTRA_APPS = [ "ssl" ]
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_extra_app ssl
# gazelle:erlang_app_dep amqp_client
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_module = APP_MODULE,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
deps = DEPS,
extra_apps = EXTRA_APPS,
beam_files = [":beam_files"],
extra_apps = ["ssl"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"@ra//:erlang_app",
"@ranch//:erlang_app",
],
)
xref(
additional_libs = BUILD_DEPS,
name = "xref",
additional_libs = [
"//deps/rabbitmq_cli:erlang_app", # keep
],
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
apps = EXTRA_APPS,
libs = ["//deps/rabbitmq_cli:elixir"],
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
libs = ["//deps/rabbitmq_cli:elixir"], # keep
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:erlang_app"], # keep
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
compiled_suites = [
":test_rabbit_auth_backend_mqtt_mock_beam",
":test_event_recorder_beam",
":test_util_beam",
],
erl_extra_args = [ENABLE_FEATURE_MAYBE_EXPR],
target = ":test_erlang_app",
)
broker_for_integration_suites(
@ -95,82 +129,61 @@ broker_for_integration_suites(
],
)
rabbitmq_test_helper(
name = "rabbit_auth_backend_mqtt_mock",
srcs = [
"test/rabbit_auth_backend_mqtt_mock.erl",
],
deps = [
"//deps/rabbit_common:erlang_app",
],
)
rabbitmq_test_helper(
name = "util",
srcs = [
"test/util.erl",
],
deps = [
"//deps/rabbit_common:erlang_app",
],
hdrs = [
"include/rabbit_mqtt.hrl"
],
)
rabbitmq_test_helper(
name = "event_recorder",
srcs = [
"test/event_recorder.erl",
],
deps = [
"//deps/rabbit_common:erlang_app",
],
)
rabbitmq_integration_suite(
name = "auth_SUITE",
additional_beam = [
":rabbit_auth_backend_mqtt_mock",
":util",
"test/rabbit_auth_backend_mqtt_mock.beam",
"test/util.beam",
],
runtime_deps = [
"@emqtt//:erlang_app",
"@meck//:erlang_app",
],
)
rabbitmq_integration_suite(
name = "cluster_SUITE",
size = "large",
additional_beam = [
":test_util_beam",
],
flaky = True,
runtime_deps = [
"@emqtt//:erlang_app",
],
additional_beam = [
":util",
],
)
rabbitmq_integration_suite(
name = "command_SUITE",
additional_beam = [
":test_util_beam",
],
runtime_deps = [
"@emqtt//:erlang_app",
],
additional_beam = [
":util",
],
)
rabbitmq_integration_suite(
name = "config_schema_SUITE",
)
rabbitmq_integration_suite(
name = "config_SUITE",
)
rabbitmq_integration_suite(
name = "config_schema_SUITE",
)
rabbitmq_integration_suite(
name = "ff_SUITE",
additional_beam = [
":test_util_beam",
],
runtime_deps = [
"@emqtt//:erlang_app",
],
)
rabbitmq_integration_suite(
name = "java_SUITE",
flaky = True,
)
rabbitmq_suite(
@ -193,22 +206,38 @@ rabbitmq_integration_suite(
rabbitmq_integration_suite(
name = "reader_SUITE",
additional_beam = [
":test_util_beam",
":test_event_recorder_beam",
],
runtime_deps = [
"@emqtt//:erlang_app",
],
additional_beam = [
":event_recorder",
":util",
],
)
rabbitmq_integration_suite(
name = "retainer_SUITE",
additional_beam = [
":test_util_beam",
],
runtime_deps = [
"@emqtt//:erlang_app",
],
)
rabbitmq_integration_suite(
name = "shared_SUITE",
size = "large",
additional_beam = [
":util",
":test_util_beam",
":test_event_recorder_beam",
],
shard_count = 6,
runtime_deps = [
"//deps/rabbitmq_management_agent:erlang_app",
"@emqtt//:erlang_app",
"@gun//:erlang_app",
"@meck//:erlang_app",
],
)
@ -220,31 +249,6 @@ rabbitmq_suite(
],
)
rabbitmq_integration_suite(
name = "ff_SUITE",
runtime_deps = [
"@emqtt//:erlang_app",
],
additional_beam = [
":util",
],
)
rabbitmq_integration_suite(
name = "shared_SUITE",
shard_count = 6,
size = "large",
runtime_deps = [
"@emqtt//:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
"@gun//:erlang_app",
],
additional_beam = [
":event_recorder",
":util",
],
)
assert_suites()
alias(

233
deps/rabbitmq_mqtt/app.bzl vendored Normal file
View File

@ -0,0 +1,233 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":behaviours", ":other_beam"],
)
erlang_bytecode(
name = "behaviours",
srcs = ["src/rabbit_mqtt_retained_msg_store.erl"],
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_mqtt",
dest = "ebin",
erlc_opts = "//:erlc_opts",
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(
["src/**/*.erl"],
exclude = [
"src/rabbit_mqtt_retained_msg_store.erl",
],
),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_mqtt",
beam = [":behaviours"],
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = ["//deps/rabbit:erlang_app", "//deps/rabbit_common:erlang_app", "//deps/rabbitmq_cli:erlang_app", "@ra//:erlang_app", "@ranch//:erlang_app"],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_behaviours", ":test_other_beam"],
)
erlang_bytecode(
name = "test_behaviours",
testonly = True,
srcs = ["src/rabbit_mqtt_retained_msg_store.erl"],
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_mqtt",
dest = "test",
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(
["src/**/*.erl"],
exclude = [
"src/rabbit_mqtt_retained_msg_store.erl",
],
),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_mqtt",
beam = [":test_behaviours"],
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
"@ra//:erlang_app",
"@ranch//:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "auth_SUITE_beam_files",
testonly = True,
srcs = ["test/auth_SUITE.erl"],
outs = ["test/auth_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "cluster_SUITE_beam_files",
testonly = True,
srcs = ["test/cluster_SUITE.erl"],
outs = ["test/cluster_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "command_SUITE_beam_files",
testonly = True,
srcs = ["test/command_SUITE.erl"],
outs = ["test/command_SUITE.beam"],
hdrs = ["include/rabbit_mqtt.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "config_schema_SUITE_beam_files",
testonly = True,
srcs = ["test/config_schema_SUITE.erl"],
outs = ["test/config_schema_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "java_SUITE_beam_files",
testonly = True,
srcs = ["test/java_SUITE.erl"],
outs = ["test/java_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "mqtt_machine_SUITE_beam_files",
testonly = True,
srcs = ["test/mqtt_machine_SUITE.erl"],
outs = ["test/mqtt_machine_SUITE.beam"],
hdrs = ["include/mqtt_machine.hrl"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "processor_SUITE_beam_files",
testonly = True,
srcs = ["test/processor_SUITE.erl"],
outs = ["test/processor_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "proxy_protocol_SUITE_beam_files",
testonly = True,
srcs = ["test/proxy_protocol_SUITE.erl"],
outs = ["test/proxy_protocol_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "reader_SUITE_beam_files",
testonly = True,
srcs = ["test/reader_SUITE.erl"],
outs = ["test/reader_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "retainer_SUITE_beam_files",
testonly = True,
srcs = ["test/retainer_SUITE.erl"],
outs = ["test/retainer_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_rabbit_auth_backend_mqtt_mock_beam",
testonly = True,
srcs = ["test/rabbit_auth_backend_mqtt_mock.erl"],
outs = ["test/rabbit_auth_backend_mqtt_mock.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
erlang_bytecode(
name = "util_SUITE_beam_files",
testonly = True,
srcs = ["test/util_SUITE.erl"],
outs = ["test/util_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "config_SUITE_beam_files",
testonly = True,
srcs = ["test/config_SUITE.erl"],
outs = ["test/config_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "ff_SUITE_beam_files",
testonly = True,
srcs = ["test/ff_SUITE.erl"],
outs = ["test/ff_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "shared_SUITE_beam_files",
testonly = True,
srcs = ["test/shared_SUITE.erl"],
outs = ["test/shared_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"],
)
erlang_bytecode(
name = "test_event_recorder_beam",
testonly = True,
srcs = ["test/event_recorder.erl"],
outs = ["test/event_recorder.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
erlang_bytecode(
name = "test_util_beam",
testonly = True,
srcs = ["test/util.erl"],
outs = ["test/util.beam"],
hdrs = ["include/rabbit_mqtt.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -9,46 +10,69 @@ load(
"rabbitmq_integration_suite",
"rabbitmq_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_peer_discovery_aws"
APP_DESCRIPTION = "AWS-based RabbitMQ peer discovery backend"
EXTRA_APPS = [
"inets",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
RUNTIME_DEPS = [
"//deps/rabbitmq_aws:erlang_app",
"//deps/rabbit:erlang_app",
]
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_extra_app inets
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_name = APP_NAME,
extra_apps = EXTRA_APPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
extra_apps = ["inets"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_aws:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = DEPS + RUNTIME_DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
compiled_suites = [":test_aws_ecs_util_beam"],
target = ":test_erlang_app",
)
broker_for_integration_suites()
@ -66,8 +90,8 @@ rabbitmq_integration_suite(
rabbitmq_suite(
name = "integration_SUITE",
size = "large",
additional_srcs = [
"test/aws_ecs_util.erl",
additional_beam = [
"test/aws_ecs_util.beam",
],
tags = [
"aws",
@ -81,7 +105,7 @@ rabbitmq_suite(
rabbitmq_suite(
name = "unit_SUITE",
size = "small",
runtime_deps = [
deps = [
"@meck//:erlang_app",
],
)

101
deps/rabbitmq_peer_discovery_aws/app.bzl vendored Normal file
View File

@ -0,0 +1,101 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_peer_discovery_aws",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = ["//deps/rabbit_common:erlang_app", "//deps/rabbitmq_peer_discovery_common:erlang_app"],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_peer_discovery_aws",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app", "//deps/rabbitmq_peer_discovery_common:erlang_app"],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "config_schema_SUITE_beam_files",
testonly = True,
srcs = ["test/config_schema_SUITE.erl"],
outs = ["test/config_schema_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "integration_SUITE_beam_files",
testonly = True,
srcs = ["test/integration_SUITE.erl"],
outs = ["test/integration_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbitmq_ct_helpers:erlang_app"],
)
erlang_bytecode(
name = "test_aws_ecs_util_beam",
testonly = True,
srcs = ["test/aws_ecs_util.erl"],
outs = ["test/aws_ecs_util.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbitmq_ct_helpers:erlang_app"],
)
erlang_bytecode(
name = "unit_SUITE_beam_files",
testonly = True,
srcs = ["test/unit_SUITE.erl"],
outs = ["test/unit_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -1,15 +1,21 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"RABBITMQ_ERLC_OPTS",
"RABBITMQ_TEST_ERLC_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_peer_discovery_common"
@ -17,40 +23,55 @@ APP_DESCRIPTION = "Modules shared by various peer discovery backends"
APP_MODULE = "rabbit_peer_discovery_common_app"
EXTRA_APPS = [
"inets",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/rabbit_common:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
]
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_extra_app inets
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
extra_apps = EXTRA_APPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
extra_apps = ["inets"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = DEPS + RUNTIME_DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()

View File

@ -0,0 +1,77 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_peer_discovery_common",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_peer_discovery_common",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "config_schema_SUITE_beam_files",
testonly = True,
srcs = ["test/config_schema_SUITE.erl"],
outs = ["test/config_schema_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -9,6 +10,13 @@ load(
"rabbitmq_integration_suite",
"rabbitmq_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_peer_discovery_consul"
@ -16,35 +24,53 @@ APP_DESCRIPTION = "Consult-based RabbitMQ peer discovery backend"
APP_MODULE = "rabbitmq_peer_discovery_consul_app"
DEPS = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
]
all_beam_files(name = "all_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
deps = DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()
@ -56,7 +82,7 @@ rabbitmq_integration_suite(
rabbitmq_suite(
name = "rabbitmq_peer_discovery_consul_SUITE",
size = "medium",
runtime_deps = [
deps = [
"@meck//:erlang_app",
],
)

View File

@ -0,0 +1,90 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_peer_discovery_consul",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_peer_discovery_consul",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "config_schema_SUITE_beam_files",
testonly = True,
srcs = ["test/config_schema_SUITE.erl"],
outs = ["test/config_schema_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "rabbitmq_peer_discovery_consul_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbitmq_peer_discovery_consul_SUITE.erl"],
outs = ["test/rabbitmq_peer_discovery_consul_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -10,6 +11,13 @@ load(
"rabbitmq_suite",
"without",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_peer_discovery_etcd"
@ -17,44 +25,70 @@ APP_DESCRIPTION = "etcd-based RabbitMQ peer discovery backend"
APP_MODULE = "rabbitmq_peer_discovery_etcd_app"
DEPS = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
]
all_beam_files(name = "all_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
"@eetcd//:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_dep rabbit
# gazelle:erlang_app_dep gun
# gazelle:erlang_app_dep_exclude credentials_obfuscation
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
"@eetcd//:erlang_app",
"@gun//:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
deps = DEPS + without(
# eetcd depends on gun, which still uses erlang:get_stacktrace/0
# and fails this rule if included
"@eetcd//:erlang_app",
RUNTIME_DEPS,
),
name = "deps_plt",
# rather that setting for_target, which will include @gun
# (via @eetcd) and fail, we produce the equivalent plt
# without it
for_target = None, # keep
ignore_warnings = True,
plt = "//:base_plt",
deps = [
"//deps/rabbit:erlang_app", # keep
"//deps/rabbit_common:erlang_app", # keep
"//deps/rabbitmq_peer_discovery_common:erlang_app", # keep
],
)
dialyze(
name = "dialyze",
dialyzer_opts = without(
"-Wunknown", # also because of `eetcd'
RABBITMQ_DIALYZER_OPTS
"-Wunknown", # also because of `eetcd'
RABBITMQ_DIALYZER_OPTS,
),
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()

View File

@ -0,0 +1,99 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_peer_discovery_etcd",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_peer_discovery_etcd",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "config_schema_SUITE_beam_files",
testonly = True,
srcs = ["test/config_schema_SUITE.erl"],
outs = ["test/config_schema_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "system_SUITE_beam_files",
testonly = True,
srcs = ["test/system_SUITE.erl"],
outs = ["test/system_SUITE.beam"],
hdrs = ["include/rabbit_peer_discovery_etcd.hrl"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "unit_SUITE_beam_files",
testonly = True,
srcs = ["test/unit_SUITE.erl"],
outs = ["test/unit_SUITE.beam"],
hdrs = ["include/rabbit_peer_discovery_etcd.hrl"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -9,6 +10,13 @@ load(
"rabbitmq_integration_suite",
"rabbitmq_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_peer_discovery_k8s"
@ -16,35 +24,53 @@ APP_DESCRIPTION = "Kubernetes-based RabbitMQ peer discovery backend"
APP_MODULE = "rabbitmq_peer_discovery_k8s_app"
DEPS = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
]
all_beam_files(name = "all_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
deps = DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()
@ -56,7 +82,7 @@ rabbitmq_integration_suite(
rabbitmq_suite(
name = "rabbitmq_peer_discovery_k8s_SUITE",
size = "small",
runtime_deps = [
deps = [
"@meck//:erlang_app",
],
)

View File

@ -0,0 +1,90 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_peer_discovery_k8s",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_peer_discovery_k8s",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "config_schema_SUITE_beam_files",
testonly = True,
srcs = ["test/config_schema_SUITE.erl"],
outs = ["test/config_schema_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "rabbitmq_peer_discovery_k8s_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbitmq_peer_discovery_k8s_SUITE.erl"],
outs = ["test/rabbitmq_peer_discovery_k8s_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -8,6 +9,13 @@ load(
"rabbitmq_app",
"rabbitmq_integration_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_prometheus"
@ -17,43 +25,60 @@ APP_ENV = """[
{return_per_object_metrics, false}
]"""
BUILD_DEPS = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"@prometheus//:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
"//deps/rabbitmq_web_dispatch:erlang_app",
"@accept//:erlang_app",
"@cowboy//:erlang_app",
]
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_dep rabbitmq_management_agent
# gazelle:erlang_app_dep_exclude amqp_client
# gazelle:erlang_app_dep_exclude rabbit_common
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_env = APP_ENV,
app_module = APP_MODULE,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
"//deps/rabbitmq_web_dispatch:erlang_app",
"@accept//:erlang_app",
"@cowboy//:erlang_app",
"@prometheus//:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
deps = BUILD_DEPS + DEPS + RUNTIME_DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()

94
deps/rabbitmq_prometheus/app.bzl vendored Normal file
View File

@ -0,0 +1,94 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_prometheus",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"@prometheus//:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_prometheus",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"@prometheus//:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "config_schema_SUITE_beam_files",
testonly = True,
srcs = ["test/config_schema_SUITE.erl"],
outs = ["test/config_schema_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "rabbit_prometheus_http_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_prometheus_http_SUITE.erl"],
outs = ["test/rabbit_prometheus_http_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"],
)

View File

@ -6,43 +6,60 @@ load(
"assert_suites",
"rabbitmq_app",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
# gazelle:erlang_always_generate_test_beam_files
APP_NAME = "rabbitmq_random_exchange"
APP_DESCRIPTION = "RabbitMQ Random Exchange"
BUILD_DEPS = [
"//deps/rabbit:erlang_app",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/rabbit_common:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
]
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
deps = BUILD_DEPS + DEPS,
plt = "//:base_plt",
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
alias(

75
deps/rabbitmq_random_exchange/app.bzl vendored Normal file
View File

@ -0,0 +1,75 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_random_exchange",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_random_exchange",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit:erlang_app", "//deps/rabbit_common:erlang_app"],
)
def test_suite_beam_files(name = "test_suite_beam_files"):
pass

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -9,45 +10,67 @@ load(
"rabbitmq_app",
"rabbitmq_integration_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_recent_history_exchange"
APP_DESCRIPTION = "RabbitMQ Recent History Exchange"
BUILD_DEPS = [
"//deps/rabbit:erlang_app",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/rabbit_common:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
]
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
apps = [ "mnesia" ],
deps = DEPS + RUNTIME_DEPS,
name = "deps_plt",
apps = [
"mnesia", # keep
],
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()

View File

@ -0,0 +1,86 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_recent_history_exchange",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_recent_history_exchange",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "system_SUITE_beam_files",
testonly = True,
srcs = ["test/system_SUITE.erl"],
outs = ["test/system_SUITE.beam"],
hdrs = ["include/rabbit_recent_history.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -9,35 +10,64 @@ load(
"rabbitmq_app",
"rabbitmq_integration_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_sharding"
APP_DESCRIPTION = "RabbitMQ Sharding Plugin"
DEPS = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
]
all_beam_files(name = "all_beam_files")
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_name = APP_NAME,
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
deps = DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()

93
deps/rabbitmq_sharding/app.bzl vendored Normal file
View File

@ -0,0 +1,93 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_sharding",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_sharding",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "rabbit_hash_exchange_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_hash_exchange_SUITE.erl"],
outs = ["test/rabbit_hash_exchange_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "rabbit_sharding_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_sharding_SUITE.erl"],
outs = ["test/rabbit_sharding_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app", "//deps/rabbit:erlang_app"],
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
@ -10,7 +11,13 @@ load(
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_suite",
"rabbitmq_test_helper",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_shovel"
@ -29,52 +36,65 @@ APP_ENV = """[
]}
]"""
EXTRA_APPS = [
"crypto",
]
all_beam_files(name = "all_beam_files")
BUILD_DEPS = [
"//deps/rabbitmq_cli:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
DEPS = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
]
all_srcs(name = "all_srcs")
RUNTIME_DEPS = [
"//deps/amqp10_client:erlang_app",
]
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_extra_app crypto
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_module = APP_MODULE,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
extra_apps = EXTRA_APPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
extra_apps = ["crypto"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/amqp10_client:erlang_app",
"//deps/amqp_client:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
xref(
additional_libs = BUILD_DEPS,
name = "xref",
additional_libs = [
"//deps/rabbitmq_cli:erlang_app", # keep
],
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
apps = EXTRA_APPS,
libs = ["//deps/rabbitmq_cli:elixir"],
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS + RUNTIME_DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
libs = ["//deps/rabbitmq_cli:elixir"], # keep
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:erlang_app"], # keep
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
compiled_suites = [":test_shovel_test_utils_beam"],
target = ":test_erlang_app",
)
rabbitmq_home(
@ -91,17 +111,10 @@ rabbitmq_run(
home = ":broker-for-tests-home",
)
rabbitmq_test_helper(
name = "shovel_test_utils",
srcs = [
"test/shovel_test_utils.erl",
],
)
rabbitmq_integration_suite(
name = "amqp10_dynamic_SUITE",
additional_beam = [
":shovel_test_utils",
"test/shovel_test_utils.beam",
],
flaky = True,
)
@ -109,11 +122,9 @@ rabbitmq_integration_suite(
rabbitmq_suite(
name = "amqp10_shovel_SUITE",
size = "small",
runtime_deps = [
"@meck//:erlang_app",
],
deps = [
"//deps/amqp10_common:erlang_app",
"@meck//:erlang_app",
],
)
@ -133,14 +144,14 @@ rabbitmq_integration_suite(
rabbitmq_integration_suite(
name = "delete_shovel_command_SUITE",
additional_beam = [
":shovel_test_utils",
"test/shovel_test_utils.beam",
],
)
rabbitmq_integration_suite(
name = "dynamic_SUITE",
additional_beam = [
":shovel_test_utils",
"test/shovel_test_utils.beam",
],
flaky = True,
)
@ -156,7 +167,7 @@ rabbitmq_suite(
rabbitmq_integration_suite(
name = "shovel_status_command_SUITE",
additional_beam = [
":shovel_test_utils",
"test/shovel_test_utils.beam",
],
)

188
deps/rabbitmq_shovel/app.bzl vendored Normal file
View File

@ -0,0 +1,188 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":behaviours", ":other_beam"],
)
erlang_bytecode(
name = "behaviours",
srcs = ["src/rabbit_shovel_behaviour.erl"],
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_shovel",
dest = "ebin",
erlc_opts = "//:erlc_opts",
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(
["src/**/*.erl"],
exclude = [
"src/rabbit_shovel_behaviour.erl",
],
),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_shovel",
beam = [":behaviours"],
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_behaviours", ":test_other_beam"],
)
erlang_bytecode(
name = "test_behaviours",
testonly = True,
srcs = ["src/rabbit_shovel_behaviour.erl"],
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_shovel",
dest = "test",
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(
["src/**/*.erl"],
exclude = [
"src/rabbit_shovel_behaviour.erl",
],
),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_shovel",
beam = [":test_behaviours"],
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "amqp10_SUITE_beam_files",
testonly = True,
srcs = ["test/amqp10_SUITE.erl"],
outs = ["test/amqp10_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "amqp10_dynamic_SUITE_beam_files",
testonly = True,
srcs = ["test/amqp10_dynamic_SUITE.erl"],
outs = ["test/amqp10_dynamic_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "amqp10_shovel_SUITE_beam_files",
testonly = True,
srcs = ["test/amqp10_shovel_SUITE.erl"],
outs = ["test/amqp10_shovel_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp10_common:erlang_app"],
)
erlang_bytecode(
name = "config_SUITE_beam_files",
testonly = True,
srcs = ["test/config_SUITE.erl"],
outs = ["test/config_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "configuration_SUITE_beam_files",
testonly = True,
srcs = ["test/configuration_SUITE.erl"],
outs = ["test/configuration_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "delete_shovel_command_SUITE_beam_files",
testonly = True,
srcs = ["test/delete_shovel_command_SUITE.erl"],
outs = ["test/delete_shovel_command_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "dynamic_SUITE_beam_files",
testonly = True,
srcs = ["test/dynamic_SUITE.erl"],
outs = ["test/dynamic_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "parameters_SUITE_beam_files",
testonly = True,
srcs = ["test/parameters_SUITE.erl"],
outs = ["test/parameters_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app"],
)
erlang_bytecode(
name = "shovel_status_command_SUITE_beam_files",
testonly = True,
srcs = ["test/shovel_status_command_SUITE.erl"],
outs = ["test/shovel_status_command_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "test_shovel_test_utils_beam",
testonly = True,
srcs = ["test/shovel_test_utils.erl"],
outs = ["test/shovel_test_utils.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
@ -11,47 +12,73 @@ load(
"rabbitmq_integration_suite",
"rabbitmq_suite",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_shovel_management"
APP_DESCRIPTION = "Management extension for the Shovel plugin"
BUILD_DEPS = [
"//deps/amqp_client:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_management:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_shovel:erlang_app",
]
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_dep rabbit
# gazelle:erlang_app_dep rabbitmq_shovel
# gazelle:erlang_app_dep_exclude cowboy
# gazelle:erlang_app_dep_exclude amqp_client
# gazelle:erlang_app_dep_exclude rabbitmq_management_agent
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_management:erlang_app",
"//deps/rabbitmq_shovel:erlang_app",
],
)
xref()
xref(
name = "xref",
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
deps = BUILD_DEPS + DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
libs = ["//deps/rabbitmq_cli:elixir"], # keep
plt = "//:base_plt",
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
rabbitmq_home(
@ -74,23 +101,19 @@ rabbitmq_integration_suite(
rabbitmq_suite(
name = "rabbit_shovel_mgmt_SUITE",
runtime_deps = [
"@meck//:erlang_app",
],
deps = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
"@meck//:erlang_app",
],
)
rabbitmq_suite(
name = "rabbit_shovel_mgmt_util_SUITE",
runtime_deps = [
"@meck//:erlang_app",
],
deps = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_shovel:erlang_app",
"@meck//:erlang_app",
],
)

101
deps/rabbitmq_shovel_management/app.bzl vendored Normal file
View File

@ -0,0 +1,101 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_shovel_management",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbitmq_management:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_shovel_management",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbitmq_management:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "http_SUITE_beam_files",
testonly = True,
srcs = ["test/http_SUITE.erl"],
outs = ["test/http_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app", "//deps/rabbitmq_ct_helpers:erlang_app"],
)
erlang_bytecode(
name = "rabbit_shovel_mgmt_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_shovel_mgmt_SUITE.erl"],
outs = ["test/rabbit_shovel_mgmt_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/rabbit_common:erlang_app", "//deps/rabbitmq_management_agent:erlang_app"],
)
erlang_bytecode(
name = "rabbit_shovel_mgmt_util_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_shovel_mgmt_util_SUITE.erl"],
outs = ["test/rabbit_shovel_mgmt_util_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)

View File

@ -17,7 +17,7 @@
-include_lib("rabbitmq_management_agent/include/rabbit_mgmt_records.hrl").
-include_lib("amqp_client/include/amqp_client.hrl").
-include_lib("rabbit_shovel_mgmt.hrl").
-include("rabbit_shovel_mgmt.hrl").
dispatcher() -> [{"/shovels", ?MODULE, []},
{"/shovels/:vhost", ?MODULE, []},

View File

@ -17,7 +17,7 @@
-include_lib("rabbitmq_management_agent/include/rabbit_mgmt_records.hrl").
-include_lib("amqp_client/include/amqp_client.hrl").
-include_lib("rabbit_shovel_mgmt.hrl").
-include("rabbit_shovel_mgmt.hrl").
%% Allow users to see things in the vhosts they are authorised. But
%% static shovels do not have a vhost, so only allow admins (not

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -9,8 +10,16 @@ load(
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_suite",
"rabbitmq_test_helper",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
# gazelle:exclude test/src
APP_NAME = "rabbitmq_stomp"
@ -40,69 +49,74 @@ APP_ENV = """[
{proxy_protocol, false}
]"""
BUILD_DEPS = [
"//deps/rabbitmq_cli:erlang_app",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"@ranch//:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
RUNTIME_DEPS = [
"//deps/rabbit:erlang_app",
]
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY,
app_module = APP_MODULE,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"@ranch//:erlang_app",
],
)
xref(
additional_libs = BUILD_DEPS,
name = "xref",
additional_libs = [
"//deps/rabbitmq_cli:erlang_app", # keep
],
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
libs = ["//deps/rabbitmq_cli:elixir"],
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS + RUNTIME_DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
libs = ["//deps/rabbitmq_cli:elixir"], # keep
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:erlang_app"], # keep
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
compiled_suites = [
":test_src_rabbit_stomp_client_beam",
":test_src_rabbit_stomp_publish_test_beam",
],
target = ":test_erlang_app",
)
broker_for_integration_suites()
rabbitmq_test_helper(
name = "rabbit_stomp_client",
srcs = [
"test/src/rabbit_stomp_client.erl",
],
hdrs = glob([
"include/**/*.hrl",
"src/**/*.hrl",
]),
deps = [
":test_erlang_app",
],
)
rabbitmq_integration_suite(
name = "command_SUITE",
size = "medium",
additional_beam = [
":rabbit_stomp_client",
"test/src/rabbit_stomp_client.beam",
],
)
@ -115,7 +129,7 @@ rabbitmq_integration_suite(
name = "connections_SUITE",
size = "medium",
additional_beam = [
":rabbit_stomp_client",
"test/src/rabbit_stomp_client.beam",
],
)
@ -143,7 +157,7 @@ rabbitmq_integration_suite(
name = "system_SUITE",
size = "medium",
additional_beam = [
":rabbit_stomp_client",
"test/src/rabbit_stomp_client.beam",
],
)
@ -151,7 +165,7 @@ rabbitmq_integration_suite(
name = "topic_SUITE",
size = "medium",
additional_beam = [
":rabbit_stomp_client",
"test/src/rabbit_stomp_client.beam",
],
)

171
deps/rabbitmq_stomp/app.bzl vendored Normal file
View File

@ -0,0 +1,171 @@
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode")
load("@rules_erlang//:filegroup.bzl", "filegroup")
def all_beam_files(name = "all_beam_files"):
filegroup(
name = "beam_files",
srcs = [":other_beam"],
)
erlang_bytecode(
name = "other_beam",
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_stomp",
dest = "ebin",
erlc_opts = "//:erlc_opts",
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
"@ranch//:erlang_app",
],
)
def all_test_beam_files(name = "all_test_beam_files"):
filegroup(
name = "test_beam_files",
testonly = True,
srcs = [":test_other_beam"],
)
erlang_bytecode(
name = "test_other_beam",
testonly = True,
srcs = native.glob(["src/**/*.erl"]),
hdrs = [":public_and_private_hdrs"],
app_name = "rabbitmq_stomp",
dest = "test",
erlc_opts = "//:test_erlc_opts",
deps = [
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
"@ranch//:erlang_app",
],
)
def all_srcs(name = "all_srcs"):
filegroup(
name = "all_srcs",
srcs = [":public_and_private_hdrs", ":srcs"],
)
filegroup(
name = "public_and_private_hdrs",
srcs = [":private_hdrs", ":public_hdrs"],
)
filegroup(
name = "priv",
srcs = native.glob(["priv/**/*"]),
)
filegroup(
name = "private_hdrs",
srcs = native.glob(["src/**/*.hrl"]),
)
filegroup(
name = "srcs",
srcs = native.glob([
"src/**/*.app.src",
"src/**/*.erl",
]),
)
filegroup(
name = "public_hdrs",
srcs = native.glob(["include/**/*.hrl"]),
)
filegroup(
name = "license_files",
srcs = native.glob(["LICENSE*"]),
)
def test_suite_beam_files(name = "test_suite_beam_files"):
erlang_bytecode(
name = "command_SUITE_beam_files",
testonly = True,
srcs = ["test/command_SUITE.erl"],
outs = ["test/command_SUITE.beam"],
hdrs = ["include/rabbit_stomp.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "config_schema_SUITE_beam_files",
testonly = True,
srcs = ["test/config_schema_SUITE.erl"],
outs = ["test/config_schema_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "connections_SUITE_beam_files",
testonly = True,
srcs = ["test/connections_SUITE.erl"],
outs = ["test/connections_SUITE.beam"],
hdrs = ["include/rabbit_stomp_frame.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "frame_SUITE_beam_files",
testonly = True,
srcs = ["test/frame_SUITE.erl"],
outs = ["test/frame_SUITE.beam"],
hdrs = ["include/rabbit_stomp_frame.hrl", "include/rabbit_stomp_headers.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "proxy_protocol_SUITE_beam_files",
testonly = True,
srcs = ["test/proxy_protocol_SUITE.erl"],
outs = ["test/proxy_protocol_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "python_SUITE_beam_files",
testonly = True,
srcs = ["test/python_SUITE.erl"],
outs = ["test/python_SUITE.beam"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "system_SUITE_beam_files",
testonly = True,
srcs = ["test/system_SUITE.erl"],
outs = ["test/system_SUITE.beam"],
hdrs = ["include/rabbit_stomp.hrl", "include/rabbit_stomp_frame.hrl", "include/rabbit_stomp_headers.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "test_src_rabbit_stomp_client_beam",
testonly = True,
srcs = ["test/src/rabbit_stomp_client.erl"],
outs = ["test/src/rabbit_stomp_client.beam"],
hdrs = ["include/rabbit_stomp_frame.hrl"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "test_src_rabbit_stomp_publish_test_beam",
testonly = True,
srcs = ["test/src/rabbit_stomp_publish_test.erl"],
outs = ["test/src/rabbit_stomp_publish_test.beam"],
hdrs = ["include/rabbit_stomp_frame.hrl"],
erlc_opts = "//:test_erlc_opts",
)
erlang_bytecode(
name = "topic_SUITE_beam_files",
testonly = True,
srcs = ["test/topic_SUITE.erl"],
outs = ["test/topic_SUITE.beam"],
hdrs = ["include/rabbit_stomp.hrl", "include/rabbit_stomp_frame.hrl", "include/rabbit_stomp_headers.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)
erlang_bytecode(
name = "util_SUITE_beam_files",
testonly = True,
srcs = ["test/util_SUITE.erl"],
outs = ["test/util_SUITE.beam"],
hdrs = ["include/rabbit_stomp_frame.hrl"],
erlc_opts = "//:test_erlc_opts",
deps = ["//deps/amqp_client:erlang_app"],
)

View File

@ -1,3 +1,4 @@
load("@rules_erlang//:eunit2.bzl", "eunit")
load("@rules_erlang//:xref2.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
@ -7,7 +8,13 @@ load(
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"without",
)
load(
":app.bzl",
"all_beam_files",
"all_srcs",
"all_test_beam_files",
"test_suite_beam_files",
)
APP_NAME = "rabbitmq_stream"
@ -32,47 +39,65 @@ APP_ENV = """[
{advertised_port, undefined}
]"""
BUILD_DEPS = [
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:erlang_app",
]
all_beam_files(name = "all_beam_files")
DEPS = [
"//deps/rabbitmq_stream_common:erlang_app",
"//deps/rabbit:erlang_app",
"@ranch//:erlang_app",
"@osiris//:erlang_app",
]
all_test_beam_files(name = "all_test_beam_files")
all_srcs(name = "all_srcs")
test_suite_beam_files(name = "test_suite_beam_files")
# gazelle:erlang_app_extra_app ssl
# gazelle:erlang_app_dep_exclude rabbit_common
rabbitmq_app(
name = "erlang_app",
srcs = [":all_srcs"],
hdrs = [":public_hdrs"],
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
deps = DEPS,
beam_files = [":beam_files"],
extra_apps = ["ssl"],
license_files = [":license_files"],
priv = [":priv"],
deps = [
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_stream_common:erlang_app",
"@osiris//:erlang_app",
"@ranch//:erlang_app",
],
)
xref(
name = "xref",
additional_libs = [
"//deps/rabbitmq_cli:erlang_app",
"//deps/rabbitmq_cli:erlang_app", # keep
],
target = ":erlang_app",
)
plt(
name = "base_plt",
plt = "//:base_plt",
apps = [
"ssl",
],
libs = ["//deps/rabbitmq_cli:elixir"],
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS,
name = "deps_plt",
for_target = ":erlang_app",
ignore_warnings = True,
libs = ["//deps/rabbitmq_cli:elixir"], # keep
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:erlang_app"], # keep
)
dialyze(
name = "dialyze",
dialyzer_opts = RABBITMQ_DIALYZER_OPTS,
plt = ":base_plt",
plt = ":deps_plt",
target = ":erlang_app",
)
eunit(
name = "eunit",
target = ":test_erlang_app",
)
broker_for_integration_suites()

Some files were not shown because too many files have changed in this diff Show More