2021-09-30 21:49:08 +08:00
|
|
|
load("@rules_pkg//:pkg.bzl", "pkg_tar")
|
2021-05-28 16:52:49 +08:00
|
|
|
load("@bazel-erlang//:dialyze.bzl", "plt")
|
2021-06-15 23:14:03 +08:00
|
|
|
load("@bazel-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",
|
|
|
|
])
|
|
|
|
|
|
|
|
# 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_home(
|
|
|
|
name = "broker-for-cli-tests-home",
|
2021-05-10 23:38:03 +08:00
|
|
|
testonly = True,
|
|
|
|
plugins = [
|
|
|
|
"//deps/rabbit:bazel_erlang_lib",
|
2021-03-29 17:01:43 +08:00
|
|
|
"//deps/rabbitmq_federation:bazel_erlang_lib",
|
|
|
|
"//deps/rabbitmq_stomp:bazel_erlang_lib",
|
|
|
|
"//deps/amqp_client:bazel_erlang_lib",
|
|
|
|
],
|
|
|
|
)
|
|
|
|
|
|
|
|
rabbitmq_run(
|
|
|
|
name = "rabbitmq-run",
|
|
|
|
home = ":broker-home",
|
|
|
|
visibility = ["//visibility:public"],
|
|
|
|
)
|
|
|
|
|
|
|
|
rabbitmq_run(
|
|
|
|
name = "rabbitmq-for-cli-tests-run",
|
|
|
|
testonly = True,
|
|
|
|
home = ":broker-for-cli-tests-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",
|
|
|
|
],
|
|
|
|
)
|