2022-05-17 20:07:16 +08:00
|
|
|
load(
|
|
|
|
"@bazel_skylib//rules:common_settings.bzl",
|
|
|
|
"string_flag",
|
|
|
|
)
|
2022-01-06 03:57:48 +08:00
|
|
|
load("@rules_erlang//:dialyze.bzl", "plt")
|
|
|
|
load("@rules_erlang//:shell.bzl", "shell")
|
2022-05-17 20:07:16 +08:00
|
|
|
load("@rules_erlang//:erl_eval.bzl", "erl_eval")
|
|
|
|
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-05-17 20:07:16 +08:00
|
|
|
load(":dist.bzl", "package_generic_unix")
|
|
|
|
load(":rabbitmq.bzl", "all_plugins")
|
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",
|
2021-03-29 17:01:43 +08:00
|
|
|
])
|
|
|
|
|
2022-01-03 19:38:06 +08:00
|
|
|
config_setting(
|
|
|
|
name = "debug_build",
|
|
|
|
values = {
|
|
|
|
"compilation_mode": "dbg",
|
|
|
|
},
|
|
|
|
)
|
|
|
|
|
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",
|
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
2022-05-17 20:07:16 +08:00
|
|
|
PLUGINS = all_plugins(
|
|
|
|
rabbitmq_workspace = "",
|
|
|
|
)
|
|
|
|
|
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",
|
|
|
|
)
|
|
|
|
|
|
|
|
# `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
|
|
|
|
|
|
|
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-05-17 20:07:16 +08:00
|
|
|
package_generic_unix(PLUGINS)
|
2022-04-26 16:51:25 +08:00
|
|
|
|
|
|
|
genrule(
|
|
|
|
name = "test-logs",
|
|
|
|
outs = ["open-test-logs.sh"],
|
|
|
|
cmd = """set -euo pipefail
|
|
|
|
cat << 'EOF' > $@
|
|
|
|
set -euo pipefail
|
|
|
|
if [ $$# -eq 0 ]; then
|
|
|
|
echo "Usage: bazel run test-logs TEST_LABEL [shard_index]"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
RELATIVE=$${1#//}
|
|
|
|
PACKAGE=$${RELATIVE%%:*}
|
|
|
|
SUITE=$${RELATIVE##*:}
|
|
|
|
OUTPUT_DIR=test.outputs
|
|
|
|
if [ $$# -gt 1 ]; then
|
|
|
|
OUTPUT_DIR=shard_$$2_of_*/test.outputs
|
|
|
|
fi
|
|
|
|
open bazel-testlogs/$$PACKAGE/$$SUITE/$$OUTPUT_DIR/index.html
|
|
|
|
EOF
|
|
|
|
""",
|
|
|
|
executable = True,
|
|
|
|
)
|
|
|
|
|
|
|
|
genrule(
|
|
|
|
name = "remote-test-logs",
|
|
|
|
outs = ["open-remote-test-logs.sh"],
|
|
|
|
cmd = """set -euo pipefail
|
|
|
|
cat << 'EOF' > $@
|
|
|
|
set -euo pipefail
|
|
|
|
if [ $$# -eq 0 ]; then
|
|
|
|
echo "Usage: bazel run remote-test-logs TEST_LABEL [shard_index]"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
RELATIVE=$${1#//}
|
|
|
|
PACKAGE=$${RELATIVE%%:*}
|
|
|
|
SUITE=$${RELATIVE##*:}
|
|
|
|
OUTPUT_DIR=test.outputs
|
|
|
|
if [ $$# -gt 1 ]; then
|
|
|
|
OUTPUT_DIR=shard_$$2_of_*/test.outputs
|
|
|
|
fi
|
|
|
|
TESTLOGS=$$(echo $$(bazel info output_path)/k8-*/testlogs)
|
|
|
|
cd $$TESTLOGS/$$PACKAGE/$$SUITE/$$OUTPUT_DIR && unzip outputs.zip
|
|
|
|
open $$TESTLOGS/$$PACKAGE/$$SUITE/$$OUTPUT_DIR/index.html
|
|
|
|
EOF
|
|
|
|
""",
|
|
|
|
executable = True,
|
|
|
|
)
|
2022-05-09 16:51:44 +08:00
|
|
|
|
|
|
|
genrule(
|
2022-05-09 17:01:54 +08:00
|
|
|
name = "test-node-data",
|
|
|
|
outs = ["open-test-node-data.sh"],
|
2022-05-09 16:51:44 +08:00
|
|
|
cmd = """set -euo pipefail
|
|
|
|
cat << 'EOF' > $@
|
|
|
|
set -euo pipefail
|
|
|
|
if [ $$# -eq 0 ]; then
|
2022-05-09 17:01:54 +08:00
|
|
|
echo "Usage: bazel run test-node-data TEST_LABEL [shard_index]"
|
2022-05-09 16:51:44 +08:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
RELATIVE=$${1#//}
|
|
|
|
PACKAGE=$${RELATIVE%%:*}
|
|
|
|
SUITE=$${RELATIVE##*:}
|
|
|
|
OUTPUT_DIR=test.outputs
|
|
|
|
if [ $$# -gt 1 ]; then
|
|
|
|
OUTPUT_DIR=shard_$$2_of_*/test.outputs
|
|
|
|
fi
|
|
|
|
open bazel-testlogs/$$PACKAGE/$$SUITE/$$OUTPUT_DIR/ct_run.*/deps.*/run.*/log_private
|
|
|
|
EOF
|
|
|
|
""",
|
|
|
|
executable = True,
|
|
|
|
)
|
|
|
|
|
|
|
|
# NOTE: this rule may not work properly if --remote_download_minimal has been used,
|
|
|
|
# which is currently the default for remote runs
|
|
|
|
genrule(
|
2022-05-09 17:01:54 +08:00
|
|
|
name = "remote-test-node-data",
|
|
|
|
outs = ["open-remote-test-node-data.sh"],
|
2022-05-09 16:51:44 +08:00
|
|
|
cmd = """set -euo pipefail
|
|
|
|
cat << 'EOF' > $@
|
|
|
|
set -euo pipefail
|
|
|
|
if [ $$# -eq 0 ]; then
|
2022-05-09 17:01:54 +08:00
|
|
|
echo "Usage: bazel run remote-test-node-data TEST_LABEL [shard_index]"
|
2022-05-09 16:51:44 +08:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
RELATIVE=$${1#//}
|
|
|
|
PACKAGE=$${RELATIVE%%:*}
|
|
|
|
SUITE=$${RELATIVE##*:}
|
|
|
|
OUTPUT_DIR=test.outputs
|
|
|
|
if [ $$# -gt 1 ]; then
|
|
|
|
OUTPUT_DIR=shard_$$2_of_*/test.outputs
|
|
|
|
fi
|
|
|
|
TESTLOGS=$$(echo $$(bazel info output_path)/k8-*/testlogs)
|
|
|
|
cd $$TESTLOGS/$$PACKAGE/$$SUITE/$$OUTPUT_DIR && unzip outputs.zip
|
|
|
|
open $$TESTLOGS/$$PACKAGE/$$SUITE/$$OUTPUT_DIR/index.html
|
|
|
|
open $$TESTLOGS/$$PACKAGE/$$SUITE/$$OUTPUT_DIR/ct_run.*/deps.*/run.*/log_private
|
|
|
|
EOF
|
|
|
|
""",
|
|
|
|
executable = True,
|
|
|
|
)
|