2021-09-30 21:49:08 +08:00
|
|
|
load("@rules_pkg//:pkg.bzl", "pkg_tar")
|
2022-01-06 03:57:48 +08:00
|
|
|
load("@rules_erlang//:dialyze.bzl", "plt")
|
|
|
|
load("@rules_erlang//:shell.bzl", "shell")
|
2021-03-29 17:01:43 +08:00
|
|
|
load("elixir_home.bzl", "elixir_home")
|
|
|
|
load(":rabbitmq_home.bzl", "rabbitmq_home")
|
|
|
|
load(":rabbitmq_run.bzl", "rabbitmq_run", "rabbitmq_run_command")
|
|
|
|
load(":rabbitmqctl.bzl", "rabbitmqctl")
|
2021-12-18 00:06:52 +08:00
|
|
|
load(":rabbitmq.bzl", "APP_VERSION", "all_plugins")
|
2021-09-30 21:49:08 +08:00
|
|
|
load(":dist.bzl", "collect_licenses", "versioned_rabbitmq_home")
|
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",
|
|
|
|
},
|
|
|
|
)
|
|
|
|
|
2021-03-29 17:01:43 +08:00
|
|
|
# This allows us to
|
|
|
|
# `bazel build //my/target \
|
|
|
|
# --//:elixir_home=/path/to/elixir/installation`
|
|
|
|
elixir_home(
|
|
|
|
name = "elixir_home",
|
|
|
|
build_setting_default = "~/.kiex/elixirs/elixir-1.10.4",
|
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
2021-07-21 23:05:02 +08:00
|
|
|
platform(
|
|
|
|
name = "erlang_git_platform",
|
|
|
|
constraint_values = [
|
|
|
|
"@platforms//os:linux",
|
|
|
|
"@platforms//cpu:x86_64",
|
|
|
|
"@bazel_tools//tools/cpp:clang",
|
|
|
|
],
|
|
|
|
exec_properties = {
|
|
|
|
"OSFamily": "Linux",
|
|
|
|
# linux-erlang-git-master
|
|
|
|
"container-image": "docker://pivotalrabbitmq/rabbitmq-server-buildenv@sha256:5d4fa38f723186668a497a8ee57e22010187e9347add5d4a7cc199dc13f1493f",
|
|
|
|
},
|
|
|
|
)
|
|
|
|
|
2021-05-28 16:52:49 +08:00
|
|
|
plt(
|
|
|
|
name = "base_plt",
|
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
2021-03-29 17:01:43 +08:00
|
|
|
rabbitmq_home(
|
|
|
|
name = "broker-home",
|
2021-12-18 00:06:52 +08:00
|
|
|
plugins = all_plugins(rabbitmq_workspace = ""),
|
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",
|
2021-12-18 00:06:52 +08:00
|
|
|
deps = all_plugins(rabbitmq_workspace = ""),
|
2021-06-15 23:14:03 +08:00
|
|
|
)
|
2021-09-30 21:49:08 +08:00
|
|
|
|
|
|
|
collect_licenses(
|
|
|
|
name = "licenses",
|
|
|
|
srcs = glob(
|
|
|
|
["LICENSE*"],
|
|
|
|
exclude = [
|
|
|
|
"LICENSE.md",
|
|
|
|
"LICENSE.txt",
|
|
|
|
],
|
|
|
|
),
|
2021-12-18 00:06:52 +08:00
|
|
|
deps = all_plugins(rabbitmq_workspace = ""),
|
2021-09-30 21:49:08 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
versioned_rabbitmq_home(
|
|
|
|
name = "dist-home",
|
2021-12-18 00:06:52 +08:00
|
|
|
plugins = all_plugins(rabbitmq_workspace = ""),
|
2021-09-30 21:49:08 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
pkg_tar(
|
|
|
|
name = "license-files",
|
|
|
|
srcs = [
|
|
|
|
":licenses",
|
|
|
|
"//deps/rabbit:INSTALL",
|
|
|
|
],
|
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
|
|
|
pkg_tar(
|
|
|
|
name = "scripts",
|
|
|
|
srcs = [
|
|
|
|
"scripts/bash_autocomplete.sh",
|
|
|
|
"scripts/rabbitmq-script-wrapper",
|
|
|
|
"scripts/rabbitmqctl-autocomplete.sh",
|
|
|
|
"scripts/zsh_autocomplete.sh",
|
|
|
|
],
|
|
|
|
package_dir = "scripts",
|
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
|
|
|
pkg_tar(
|
|
|
|
name = "release-notes",
|
|
|
|
srcs = glob([
|
|
|
|
"release-notes/*.md",
|
|
|
|
"release-notes/*.txt",
|
|
|
|
]),
|
|
|
|
package_dir = "release-notes",
|
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
|
|
|
pkg_tar(
|
|
|
|
name = "package-generic-unix",
|
|
|
|
srcs = [
|
|
|
|
":dist-home",
|
|
|
|
],
|
|
|
|
extension = "tar.xz",
|
|
|
|
package_dir = "rabbitmq_server-{}".format(APP_VERSION),
|
|
|
|
strip_prefix = "dist-home",
|
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
deps = [
|
|
|
|
":license-files",
|
|
|
|
":release-notes",
|
|
|
|
":scripts",
|
|
|
|
"//deps/rabbit:manpages-dir",
|
|
|
|
],
|
|
|
|
)
|
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(
|
|
|
|
name = "test-node-logs",
|
|
|
|
outs = ["open-test-node-logs.sh"],
|
|
|
|
cmd = """set -euo pipefail
|
|
|
|
cat << 'EOF' > $@
|
|
|
|
set -euo pipefail
|
|
|
|
if [ $$# -eq 0 ]; then
|
|
|
|
echo "Usage: bazel run test-node-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/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(
|
|
|
|
name = "remote-test-node-logs",
|
|
|
|
outs = ["open-remote-test-node-logs.sh"],
|
|
|
|
cmd = """set -euo pipefail
|
|
|
|
cat << 'EOF' > $@
|
|
|
|
set -euo pipefail
|
|
|
|
if [ $$# -eq 0 ]; then
|
|
|
|
echo "Usage: bazel run remote-test-node-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
|
|
|
|
open $$TESTLOGS/$$PACKAGE/$$SUITE/$$OUTPUT_DIR/ct_run.*/deps.*/run.*/log_private
|
|
|
|
EOF
|
|
|
|
""",
|
|
|
|
executable = True,
|
|
|
|
)
|