2022-05-17 20:07:16 +08:00
|
|
|
load(
|
|
|
|
"@bazel_skylib//rules:common_settings.bzl",
|
2022-10-19 19:51:49 +08:00
|
|
|
"bool_flag",
|
2022-05-17 20:07:16 +08:00
|
|
|
"string_flag",
|
|
|
|
)
|
2023-05-12 15:26:13 +08:00
|
|
|
load("@rules_pkg//pkg:mappings.bzl", "pkg_files")
|
2023-02-23 21:47:41 +08:00
|
|
|
load("@bazel_gazelle//:def.bzl", "gazelle")
|
|
|
|
load("@rules_erlang//gazelle:def.bzl", "GAZELLE_ERLANG_RUNTIME_DEPS")
|
|
|
|
load("@rules_erlang//:erlang_bytecode2.bzl", "erlc_opts")
|
2023-04-14 15:09:55 +08:00
|
|
|
load("@rules_erlang//:dialyze.bzl", "DEFAULT_PLT_APPS", "plt")
|
2022-01-06 03:57:48 +08:00
|
|
|
load("@rules_erlang//:shell.bzl", "shell")
|
2022-05-17 20:07:16 +08:00
|
|
|
load("@rules_erlang//:erl_eval.bzl", "erl_eval")
|
2023-02-23 21:47:41 +08:00
|
|
|
load("@rules_erlang//gazelle:moduleindex.bzl", "moduleindex")
|
2022-05-17 20:07:16 +08:00
|
|
|
load("//bazel/elixir:iex_eval.bzl", "iex_eval")
|
2021-03-29 17:01:43 +08:00
|
|
|
load(":rabbitmq_home.bzl", "rabbitmq_home")
|
|
|
|
load(":rabbitmq_run.bzl", "rabbitmq_run", "rabbitmq_run_command")
|
|
|
|
load(":rabbitmqctl.bzl", "rabbitmqctl")
|
2022-06-09 16:52:09 +08:00
|
|
|
load(":dist.bzl", "package_generic_unix", "source_archive")
|
2023-02-23 21:47:41 +08:00
|
|
|
load(
|
|
|
|
":rabbitmq.bzl",
|
|
|
|
"RABBITMQ_ERLC_OPTS",
|
|
|
|
"RABBITMQ_TEST_ERLC_OPTS",
|
|
|
|
"all_plugins",
|
|
|
|
"without",
|
|
|
|
)
|
2021-03-29 17:01:43 +08:00
|
|
|
|
|
|
|
exports_files([
|
|
|
|
"scripts/bazel/rabbitmq-run.sh",
|
2022-01-06 03:57:48 +08:00
|
|
|
"scripts/bazel/rabbitmq-run.bat",
|
2022-08-31 17:07:57 +08:00
|
|
|
"release-notes",
|
2021-03-29 17:01:43 +08:00
|
|
|
])
|
|
|
|
|
2023-02-23 21:47:41 +08:00
|
|
|
# gazelle:exclude .github
|
|
|
|
# gazelle:exclude .elixir_ls
|
2023-05-15 19:06:35 +08:00
|
|
|
# gazelle:exclude .erlang.mk
|
2023-02-23 21:47:41 +08:00
|
|
|
# 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/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
|
2023-05-15 15:55:33 +08:00
|
|
|
# gazelle:exclude deps/*/deps
|
2023-05-15 19:06:35 +08:00
|
|
|
# gazelle:exclude deps/*/.erlang.mk
|
|
|
|
# gazelle:exclude deps/rabbitmq_cli/_build
|
2023-05-01 16:32:59 +08:00
|
|
|
# gazelle:exclude extra_deps
|
2023-02-23 21:47:41 +08:00
|
|
|
# gazelle:exclude packaging
|
|
|
|
# gazelle:exclude PACKAGES
|
2023-05-01 16:32:59 +08:00
|
|
|
# gazelle:exclude plugins
|
|
|
|
# gazelle:exclude release-notes
|
2023-02-23 21:47:41 +08:00
|
|
|
# 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
|
2023-01-25 16:41:56 +08:00
|
|
|
|
|
|
|
gazelle(
|
|
|
|
name = "gazelle",
|
|
|
|
data = GAZELLE_ERLANG_RUNTIME_DEPS,
|
2023-02-23 21:47:41 +08:00
|
|
|
extra_args = [
|
|
|
|
"--verbose",
|
|
|
|
],
|
2023-01-25 16:41:56 +08:00
|
|
|
gazelle = "@rules_erlang//gazelle:gazelle_erlang_binary",
|
|
|
|
)
|
|
|
|
|
2023-02-28 23:47:02 +08:00
|
|
|
gazelle(
|
|
|
|
name = "gazelle-update-repos",
|
|
|
|
command = "update-repos",
|
|
|
|
data = GAZELLE_ERLANG_RUNTIME_DEPS,
|
|
|
|
extra_args = [
|
|
|
|
"--verbose",
|
|
|
|
"--build_files_dir=bazel",
|
|
|
|
"--recurse_with=gazelle-update-repos",
|
|
|
|
],
|
|
|
|
gazelle = "@rules_erlang//gazelle:gazelle_erlang_binary",
|
|
|
|
)
|
2023-01-25 16:41:56 +08:00
|
|
|
|
2022-10-19 19:51:49 +08:00
|
|
|
bool_flag(
|
|
|
|
name = "enable_test_build",
|
|
|
|
build_setting_default = False,
|
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
|
|
|
config_setting(
|
|
|
|
name = "test_build",
|
|
|
|
flag_values = {
|
|
|
|
"//:enable_test_build": "true",
|
|
|
|
},
|
|
|
|
)
|
|
|
|
|
2022-05-17 20:07:16 +08:00
|
|
|
string_flag(
|
2021-03-29 17:01:43 +08:00
|
|
|
name = "elixir_home",
|
2022-05-17 20:07:16 +08:00
|
|
|
build_setting_default = "",
|
2021-03-29 17:01:43 +08:00
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
2021-05-28 16:52:49 +08:00
|
|
|
plt(
|
|
|
|
name = "base_plt",
|
2023-02-23 21:47:41 +08:00
|
|
|
apps = DEFAULT_PLT_APPS + [
|
|
|
|
"compiler",
|
|
|
|
"crypto",
|
|
|
|
], # keep
|
2021-05-28 16:52:49 +08:00
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
2022-05-17 20:07:16 +08:00
|
|
|
PLUGINS = all_plugins(
|
|
|
|
rabbitmq_workspace = "",
|
2023-05-30 16:34:01 +08:00
|
|
|
) + select({
|
|
|
|
"@rules_erlang//:debug_build": ["@looking_glass//:erlang_app"],
|
|
|
|
"//conditions:default": [],
|
|
|
|
})
|
2022-05-17 20:07:16 +08:00
|
|
|
|
2021-03-29 17:01:43 +08:00
|
|
|
rabbitmq_home(
|
|
|
|
name = "broker-home",
|
2022-05-17 20:07:16 +08:00
|
|
|
plugins = PLUGINS,
|
2021-03-29 17:01:43 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
rabbitmq_run(
|
|
|
|
name = "rabbitmq-run",
|
|
|
|
home = ":broker-home",
|
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
|
|
|
# Allow us to `bazel run broker`
|
|
|
|
# for the equivalent of `make run-broker`
|
|
|
|
rabbitmq_run_command(
|
|
|
|
name = "broker",
|
|
|
|
rabbitmq_run = ":rabbitmq-run",
|
|
|
|
subcommand = "run-broker",
|
|
|
|
)
|
|
|
|
|
2022-07-04 21:45:59 +08:00
|
|
|
# Allow us to `bazel run start-cluster`
|
|
|
|
# for the equivalent of `make start-cluster`
|
|
|
|
rabbitmq_run_command(
|
|
|
|
name = "start-cluster",
|
|
|
|
rabbitmq_run = ":rabbitmq-run",
|
|
|
|
subcommand = "start-cluster",
|
|
|
|
)
|
|
|
|
|
|
|
|
# Allow us to `bazel run stop-cluster`
|
|
|
|
# for the equivalent of `make stop-cluster`
|
|
|
|
rabbitmq_run_command(
|
|
|
|
name = "stop-cluster",
|
|
|
|
rabbitmq_run = ":rabbitmq-run",
|
|
|
|
subcommand = "stop-cluster",
|
|
|
|
)
|
|
|
|
|
2021-03-29 17:01:43 +08:00
|
|
|
# `bazel run rabbitmqctl`
|
|
|
|
rabbitmqctl(
|
|
|
|
name = "rabbitmqctl",
|
|
|
|
home = ":broker-home",
|
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
2021-05-26 21:40:20 +08:00
|
|
|
|
2021-06-02 21:07:46 +08:00
|
|
|
rabbitmqctl(
|
|
|
|
name = "rabbitmq-diagnostics",
|
|
|
|
home = ":broker-home",
|
|
|
|
)
|
|
|
|
|
2021-05-26 21:40:20 +08:00
|
|
|
rabbitmqctl(
|
|
|
|
name = "rabbitmq-plugins",
|
|
|
|
home = ":broker-home",
|
|
|
|
)
|
2021-06-15 23:14:03 +08:00
|
|
|
|
2022-12-08 16:06:12 +08:00
|
|
|
rabbitmqctl(
|
|
|
|
name = "rabbitmq-streams",
|
|
|
|
home = ":broker-home",
|
|
|
|
)
|
|
|
|
|
2022-12-20 22:25:07 +08:00
|
|
|
rabbitmqctl(
|
|
|
|
name = "rabbitmq-queues",
|
|
|
|
home = ":broker-home",
|
|
|
|
)
|
2023-01-05 19:39:25 +08:00
|
|
|
|
2023-06-01 17:54:32 +08:00
|
|
|
rabbitmqctl(
|
|
|
|
name = "rabbitmq-upgrade",
|
|
|
|
home = ":broker-home",
|
|
|
|
)
|
|
|
|
|
2021-06-15 23:14:03 +08:00
|
|
|
shell(
|
|
|
|
name = "repl",
|
2022-05-17 20:07:16 +08:00
|
|
|
deps = PLUGINS,
|
2021-09-30 21:49:08 +08:00
|
|
|
)
|
|
|
|
|
2022-05-17 20:07:16 +08:00
|
|
|
erl_eval(
|
|
|
|
name = "otp_version",
|
|
|
|
outs = ["otp_version.txt"],
|
|
|
|
expression = """{ok, Version} = file:read_file(filename:join([code:root_dir(), "releases", erlang:system_info(otp_release), "OTP_VERSION"])), file:write_file(os:getenv("OUTS"), Version), halt().""",
|
2021-09-30 21:49:08 +08:00
|
|
|
)
|
|
|
|
|
2022-05-17 20:07:16 +08:00
|
|
|
iex_eval(
|
|
|
|
name = "elixir_version",
|
|
|
|
outs = ["elixir_version.txt"],
|
|
|
|
expression = """File.write!(System.get_env("OUTS"), System.version()); System.halt()""",
|
2021-09-30 21:49:08 +08:00
|
|
|
)
|
|
|
|
|
2022-07-11 23:52:34 +08:00
|
|
|
filegroup(
|
|
|
|
name = "root-licenses",
|
2023-05-01 16:32:59 +08:00
|
|
|
srcs = glob(["LICENSE*"]),
|
2022-07-11 23:52:34 +08:00
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
2023-03-03 19:02:02 +08:00
|
|
|
pkg_files(
|
|
|
|
name = "scripts-files",
|
2022-07-11 23:52:34 +08:00
|
|
|
srcs = [
|
|
|
|
"scripts/bash_autocomplete.sh",
|
|
|
|
"scripts/rabbitmq-script-wrapper",
|
|
|
|
"scripts/rabbitmqctl-autocomplete.sh",
|
|
|
|
"scripts/zsh_autocomplete.sh",
|
|
|
|
],
|
2023-03-03 19:02:02 +08:00
|
|
|
prefix = "scripts",
|
2022-07-11 23:52:34 +08:00
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
2023-03-03 19:02:02 +08:00
|
|
|
pkg_files(
|
|
|
|
name = "release-notes-files",
|
2022-07-11 23:52:34 +08:00
|
|
|
srcs = glob([
|
|
|
|
"release-notes/*.md",
|
|
|
|
"release-notes/*.txt",
|
|
|
|
]),
|
2023-03-03 19:02:02 +08:00
|
|
|
prefix = "release-notes",
|
2022-07-11 23:52:34 +08:00
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
2022-10-27 17:36:50 +08:00
|
|
|
package_generic_unix(
|
2023-03-03 19:02:02 +08:00
|
|
|
name = "package-generic-unix",
|
2022-10-27 17:36:50 +08:00
|
|
|
plugins = PLUGINS,
|
|
|
|
)
|
2022-04-26 16:51:25 +08:00
|
|
|
|
2022-10-27 17:36:50 +08:00
|
|
|
source_archive(
|
2023-03-03 19:02:02 +08:00
|
|
|
name = "source_archive",
|
2022-10-27 17:36:50 +08:00
|
|
|
plugins = PLUGINS,
|
|
|
|
)
|
2022-06-09 16:52:09 +08:00
|
|
|
|
2023-02-23 21:47:41 +08:00
|
|
|
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"],
|
|
|
|
)
|
|
|
|
|
2022-12-19 20:49:07 +08:00
|
|
|
alias(
|
2022-04-26 16:51:25 +08:00
|
|
|
name = "test-logs",
|
2022-12-19 20:49:07 +08:00
|
|
|
actual = "//bazel/util:test-logs",
|
2022-04-26 16:51:25 +08:00
|
|
|
)
|
|
|
|
|
2022-12-19 20:49:07 +08:00
|
|
|
alias(
|
2022-04-26 16:51:25 +08:00
|
|
|
name = "remote-test-logs",
|
2022-12-19 20:49:07 +08:00
|
|
|
actual = "//bazel/util:remote-test-logs",
|
2022-04-26 16:51:25 +08:00
|
|
|
)
|
2022-05-09 16:51:44 +08:00
|
|
|
|
2022-12-19 20:49:07 +08:00
|
|
|
alias(
|
2022-05-09 17:01:54 +08:00
|
|
|
name = "test-node-data",
|
2022-12-19 20:49:07 +08:00
|
|
|
actual = "//bazel/util:test-node-data",
|
2022-05-09 16:51:44 +08:00
|
|
|
)
|
|
|
|
|
2022-12-19 20:49:07 +08:00
|
|
|
alias(
|
2022-05-09 17:01:54 +08:00
|
|
|
name = "remote-test-node-data",
|
2022-12-19 20:49:07 +08:00
|
|
|
actual = "//bazel/util:remote-test-node-data",
|
2022-05-09 16:51:44 +08:00
|
|
|
)
|
2023-02-23 21:47:41 +08:00
|
|
|
|
|
|
|
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__"],
|
|
|
|
)
|