Skip to content

Commit

Permalink
Add the bazel target :package-generic-unix
Browse files Browse the repository at this point in the history
Which can be used to build the artifact with bazel
  • Loading branch information
HoloRin committed Nov 18, 2021
1 parent eaa1370 commit 11fd866
Show file tree
Hide file tree
Showing 7 changed files with 419 additions and 83 deletions.
106 changes: 70 additions & 36 deletions BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@bazel-erlang//:dialyze.bzl", "plt")
load("@bazel-erlang//:shell.bzl", "shell")
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")
load(":rabbitmq.bzl", "ALL_PLUGINS", "APP_VERSION")
load(":dist.bzl", "collect_licenses", "versioned_rabbitmq_home")

exports_files([
"scripts/bazel/rabbitmq-run.sh",
Expand Down Expand Up @@ -37,42 +40,6 @@ plt(
visibility = ["//visibility:public"],
)

ALL_PLUGINS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_amqp1_0:bazel_erlang_lib",
"//deps/rabbitmq_auth_backend_cache:bazel_erlang_lib",
"//deps/rabbitmq_auth_backend_http:bazel_erlang_lib",
"//deps/rabbitmq_auth_backend_ldap:bazel_erlang_lib",
"//deps/rabbitmq_auth_backend_oauth2:bazel_erlang_lib",
"//deps/rabbitmq_auth_mechanism_ssl:bazel_erlang_lib",
"//deps/rabbitmq_consistent_hash_exchange:bazel_erlang_lib",
"//deps/rabbitmq_event_exchange:bazel_erlang_lib",
"//deps/rabbitmq_federation:bazel_erlang_lib",
"//deps/rabbitmq_federation_management:bazel_erlang_lib",
"//deps/rabbitmq_jms_topic_exchange:bazel_erlang_lib",
"//deps/rabbitmq_management:bazel_erlang_lib",
"//deps/rabbitmq_mqtt:bazel_erlang_lib",
"//deps/rabbitmq_peer_discovery_aws:bazel_erlang_lib",
"//deps/rabbitmq_peer_discovery_consul:bazel_erlang_lib",
"//deps/rabbitmq_peer_discovery_etcd:bazel_erlang_lib",
"//deps/rabbitmq_peer_discovery_k8s:bazel_erlang_lib",
"//deps/rabbitmq_prometheus:bazel_erlang_lib",
"//deps/rabbitmq_random_exchange:bazel_erlang_lib",
"//deps/rabbitmq_recent_history_exchange:bazel_erlang_lib",
"//deps/rabbitmq_sharding:bazel_erlang_lib",
"//deps/rabbitmq_shovel:bazel_erlang_lib",
"//deps/rabbitmq_shovel_management:bazel_erlang_lib",
"//deps/rabbitmq_stomp:bazel_erlang_lib",
"//deps/rabbitmq_stream:bazel_erlang_lib",
"//deps/rabbitmq_stream_management:bazel_erlang_lib",
"//deps/rabbitmq_top:bazel_erlang_lib",
"//deps/rabbitmq_tracing:bazel_erlang_lib",
"//deps/rabbitmq_trust_store:bazel_erlang_lib",
"//deps/rabbitmq_web_dispatch:bazel_erlang_lib",
"//deps/rabbitmq_web_mqtt:bazel_erlang_lib",
"//deps/rabbitmq_web_stomp:bazel_erlang_lib",
]

rabbitmq_home(
name = "broker-home",
plugins = ALL_PLUGINS,
Expand Down Expand Up @@ -132,3 +99,70 @@ shell(
name = "repl",
deps = ALL_PLUGINS,
)

collect_licenses(
name = "licenses",
srcs = glob(
["LICENSE*"],
exclude = [
"LICENSE.md",
"LICENSE.txt",
],
),
deps = ALL_PLUGINS,
)

versioned_rabbitmq_home(
name = "dist-home",
plugins = ALL_PLUGINS,
)

# need to add the INSTALL file

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",
],
)
13 changes: 13 additions & 0 deletions WORKSPACE.bazel
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")

http_archive(
name = "rules_pkg",
sha256 = "038f1caa773a7e35b3663865ffb003169c6a71dc995e39bf4815792f385d837d",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.4.0/rules_pkg-0.4.0.tar.gz",
"https://github.com/bazelbuild/rules_pkg/releases/download/0.4.0/rules_pkg-0.4.0.tar.gz",
],
)

load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")

rules_pkg_dependencies()

http_archive(
name = "io_buildbuddy_buildbuddy_toolchain",
sha256 = "48546946879b1fd2dcba327ba15776c822f2ce9a9ef1077be9bf3ecadcc1564a",
Expand Down
70 changes: 70 additions & 0 deletions deps/rabbit/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ exports_files([
"scripts/rabbitmq-queues",
"scripts/rabbitmq-server",
"scripts/rabbitmqctl",
"INSTALL",
])

_APP_ENV = """[
Expand Down Expand Up @@ -997,3 +998,72 @@ assert_suites(
suites,
glob(["test/**/*_SUITE.erl"]),
)

filegroup(
name = "manpages",
srcs = glob([
"docs/*.1",
"docs/*.2",
"docs/*.3",
"docs/*.4",
"docs/*.5",
"docs/*.6",
"docs/*.7",
"docs/*.8",
"docs/*.9",
]),
)

genrule(
name = "manpages-dir",
srcs = [":manpages"],
outs = ["manpages.tar"],
cmd = """set -euo pipefail
DESTDIR=manpages-tmp/share/man
mkdir -p $${DESTDIR}
for mp in $(SRCS); do
section=$${mp##*.}
mkdir -p $${DESTDIR}/man$$section
gzip < $$mp \\
> $${DESTDIR}/man$$section/$$(basename $$mp).gz
done
tar --strip-components 1 -cf $@ manpages-tmp/*
rm -dr manpages-tmp
""",
visibility = ["//visibility:public"],
)

genrule(
name = "web-manpages",
srcs = [":manpages"],
outs = ["web-manpages.tar"],
cmd = """set -euo pipefail
mkdir web-manpages-tmp
for mp in $(SRCS); do
d=web-manpages-tmp/$$(basename $${mp}).html
echo "Converting $$mp to $$d..."
mandoc -T html -O 'fragment,man=%N.%S.html' "$$mp" | \\
awk '\\
/^<table class="head">$$/ { remove_table=1; next; } \\
/^<table class="foot">$$/ { remove_table=1; next; } \\
/^<\\/table>$$/ { if (remove_table) { remove_table=0; next; } } \\
{ if (!remove_table) { \\
line=$$0; \\
gsub(/<h2/, "<h3", line); \\
gsub(/<\\/h2>/, "</h3>", line); \\
gsub(/<h1/, "<h2", line); \\
gsub(/<\\/h1>/, "</h2>", line); \\
gsub(/class="D1"/, "class=\"D1 lang-bash\"", line); \\
gsub(/class="Bd Bd-indent"/, "class=\"Bd Bd-indent lang-bash\"", line); \\
gsub(/&#[xX]201[cCdD];/, "\\&quot;", line); \\
print line; \\
} } \\
' > "$$d"
done
tar --strip-components 1 -cf $@ web-manpages-tmp/*
rm -dr web-manpages-tmp
""",
visibility = ["//visibility:public"],
)
13 changes: 2 additions & 11 deletions deps/rabbitmq_web_dispatch/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib", "test_erlang_lib")
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze", "plt")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
Expand All @@ -9,6 +8,7 @@ load(
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)

Expand All @@ -28,16 +28,7 @@ DEPS = [
"@cowboy//:bazel_erlang_lib",
]

erlang_lib(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
app_version = APP_VERSION,
extra_apps = EXTRA_APPS,
deps = DEPS,
)

test_erlang_lib(
rabbitmq_lib(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
Expand Down
Loading

0 comments on commit 11fd866

Please sign in to comment.