Use rules_erlang v2

bazel-erlang has been renamed rules_erlang. v2 is a substantial
refactor that brings Windows support. While this alone isn't enough to
run all rabbitmq-server suites on windows, one can at least now start
the broker (bazel run broker) and run the tests that do not start a
background broker process
This commit is contained in:
Philip Kuryloski 2022-01-05 20:57:48 +01:00
parent 96c9270fb3
commit efcd881658
72 changed files with 1331 additions and 919 deletions

View File

@ -18,7 +18,7 @@ build:rbe --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8
build:rbe --java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8
build:rbe --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
build:rbe --@bazel-erlang//:erlang_home=/usr/lib/erlang
build:rbe --@rules_erlang//:erlang_home=/usr/lib/erlang
build:rbe --//:elixir_home=/usr/local
build:rbe --spawn_strategy=remote
@ -37,7 +37,7 @@ build:rbe-23 --host_platform=@rbe_23//config:platform
build:rbe-23 --platforms=@rbe_23//config:platform
build:rbe-23 --extra_execution_platforms=@rbe_23//config:platform
build:rbe-23 --@bazel-erlang//:erlang_version=23
build:rbe-23 --@rules_erlang//:erlang_version=23
build:rbe-24 --config=rbe
build:rbe-24 --host_javabase=@rbe_24//java:jdk
@ -49,7 +49,7 @@ build:rbe-24 --host_platform=@rbe_24//config:platform
build:rbe-24 --platforms=@rbe_24//config:platform
build:rbe-24 --extra_execution_platforms=@rbe_24//config:platform
build:rbe-24 --@bazel-erlang//:erlang_version=24
build:rbe-24 --@rules_erlang//:erlang_version=24
# Try importing a user specific .bazelrc
# You can create your own by copying and editing the template-user.bazelrc template:

View File

@ -51,8 +51,8 @@ jobs:
build:rbe-git --host_platform=//:erlang_git_platform
build:rbe-git --platforms=//:erlang_git_platform
build:rbe-git --extra_execution_platforms=//:erlang_git_platform
build:rbe-git --@bazel-erlang//:erlang_home=/usr/local/lib/erlang
build:rbe-git --@bazel-erlang//:erlang_version=25
build:rbe-git --@rules_erlang//:erlang_home=/usr/local/lib/erlang
build:rbe-git --@rules_erlang//:erlang_version=25
EOF
#! - name: Setup tmate session
#! uses: mxschmitt/action-tmate@v3

View File

@ -99,8 +99,8 @@ jobs:
build:buildbuddy --color=yes
build:buildbuddy --disk_cache=
build --@bazel-erlang//:erlang_version=${{ matrix.erlang_version }}
build --@bazel-erlang//:erlang_home=${ERLANG_HOME}
build --@rules_erlang//:erlang_version=${{ matrix.erlang_version }}
build --@rules_erlang//:erlang_home=${ERLANG_HOME}
build --//:elixir_home=${ELIXIR_HOME}
EOF
#! - name: Setup tmate session

65
.github/workflows/test-windows.yaml vendored Normal file
View File

@ -0,0 +1,65 @@
name: Test Windows
on:
push:
paths:
- 'deps/**'
- 'scripts/**'
- Makefile
- plugins.mk
- rabbitmq-components.mk
- .bazelrc
- .bazelversion
- BUILD.*
- '*.bzl'
- '*.bazel'
- .github/workflows/test-windows.yaml
jobs:
test:
name: Test Windows
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
erlang_version:
#! - "23"
- "24"
timeout-minutes: 120
steps:
- name: CHECKOUT REPOSITORY
uses: actions/checkout@v2.4.0
- name: CONFIGURE ERLANG
uses: erlef/setup-beam@v1
with:
otp-version: ${{ matrix.erlang_version }}
elixir-version: 1.12.3
#! - name: MOUNT BAZEL CACHE
#! uses: actions/cache@v1
#! with:
#! path: "/home/runner/repo-cache/"
#! key: repo-cache
- name: CONFIGURE BAZEL
shell: bash
run: |
ERL_PATH="$(which erl)"
IEX_PATH="$(which iex)"
cat << EOF >> user.bazelrc
startup --windows_enable_symlinks
build --enable_runfiles
build:buildbuddy --remote_header=x-buildbuddy-api-key=${{ secrets.BUILDBUDDY_API_KEY }}
build:buildbuddy --build_metadata=ROLE=CI
build:buildbuddy --build_metadata=VISIBILITY=PUBLIC
build:buildbuddy --remote_instance_name=buildbuddy-io/buildbuddy/ci-windows-${{ matrix.erlang_version }}
# build:buildbuddy --repository_cache=/home/runner/repo-cache/
build:buildbuddy --color=yes
build:buildbuddy --disk_cache=
build --@rules_erlang//:erlang_version=${{ matrix.erlang_version }}
build --@rules_erlang//:erlang_home="${ERL_PATH/\/bin\/erl/}"
build --//:elixir_home="${IEX_PATH/\/bin\/iex/}"
EOF
bazelisk info release
- name: RUN TESTS
run: bazelisk test //... --config=buildbuddy --test_tag_filters=-exclusive,-aws,-bats,-starts-background-broker --build_tests_only --verbose_failures

View File

@ -93,8 +93,8 @@ jobs:
build:buildbuddy --color=yes
build:buildbuddy --disk_cache=
build --@bazel-erlang//:erlang_version=${{ matrix.erlang_version }}
build --@bazel-erlang//:erlang_home=${ERLANG_HOME}
build --@rules_erlang//:erlang_version=${{ matrix.erlang_version }}
build --@rules_erlang//:erlang_home=${ERLANG_HOME}
build --//:elixir_home=${ELIXIR_HOME}
EOF
#! - name: Setup tmate session

View File

@ -1,11 +1,11 @@
name: Update bazel-erlang
name: Update rules_erlang
on:
schedule:
- cron: '0 3 * * *'
workflow_dispatch:
jobs:
update-bazel-erlang:
name: Update bazel-erlang
update-rules_erlang:
name: Update rules_erlang
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
@ -13,21 +13,21 @@ jobs:
uses: actions/checkout@v2.4.0
with:
path: rabbitmq-server
- name: CHECKOUT bazel-erlang
- name: CHECKOUT rules_erlang
uses: actions/checkout@v2.4.0
with:
repository: rabbitmq/bazel-erlang
path: bazel-erlang
repository: rabbitmq/rules_erlang
path: rules_erlang
- name: DETERMINE LATEST COMMIT
id: find-commit
working-directory: bazel-erlang
working-directory: rules_erlang
run: |
echo "::set-output name=SHA::$(git rev-parse HEAD)"
- name: UPDATE bazel-erlang COMMIT
- name: UPDATE rules_erlang COMMIT
working-directory: rabbitmq-server
run: |
sudo npm install --global --silent @bazel/buildozer
echo "$(cat WORKSPACE.bazel | npx buildozer 'set commit "${{ steps.find-commit.outputs.SHA }}"' -:bazel-erlang)" > WORKSPACE.bazel
echo "$(cat WORKSPACE.bazel | npx buildozer 'set commit "${{ steps.find-commit.outputs.SHA }}"' -:rules_erlang)" > WORKSPACE.bazel
git diff
- name: CREATE PULL REQUEST
uses: peter-evans/create-pull-request@v3
@ -36,10 +36,10 @@ jobs:
committer: GitHub <noreply@github.com>
author: GitHub <noreply@github.com>
path: rabbitmq-server
title: Adopt latest bazel-erlang
title: Adopt latest rules_erlang
commit-message: |
Adopt latest bazel-erlang
Adopt latest rules_erlang
- bazel-erlang@${{ steps.find-commit.outputs.SHA }}
branch: bump-bazel-erlang
- rules_erlang@${{ steps.find-commit.outputs.SHA }}
branch: bump-rules_erlang
delete-branch: true

View File

@ -1,6 +1,6 @@
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@bazel-erlang//:dialyze.bzl", "plt")
load("@bazel-erlang//:shell.bzl", "shell")
load("@rules_erlang//:dialyze.bzl", "plt")
load("@rules_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")
@ -10,6 +10,7 @@ load(":dist.bzl", "collect_licenses", "versioned_rabbitmq_home")
exports_files([
"scripts/bazel/rabbitmq-run.sh",
"scripts/bazel/rabbitmq-run.bat",
])
config_setting(
@ -52,30 +53,12 @@ rabbitmq_home(
plugins = all_plugins(rabbitmq_workspace = ""),
)
rabbitmq_home(
name = "broker-for-cli-tests-home",
testonly = True,
plugins = [
"//deps/rabbit:bazel_erlang_lib",
"//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(

View File

@ -1,6 +1,6 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib")
load("@rules_erlang//:erlang_app.bzl", "erlang_app")
erlang_lib(
erlang_app(
app_name = "inet_tcp_proxy_dist",
app_version = "0.1.0",
app_description = "Erlang distribution proxy to simulate network failures",

View File

@ -1,5 +1,7 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "app_file", "bazel_erlang_lib", "erlc",
"DEFAULT_ERLC_OPTS")
load("@rules_erlang//:app_file.bzl", "app_file")
load("@rules_erlang//:erlang_app_info.bzl", "erlang_app_info")
load("@rules_erlang//:erlang_app.bzl", "DEFAULT_ERLC_OPTS")
load("@rules_erlang//:erlc.bzl", "erlc")
FIRST_SRCS = [
"src/ranch_transport.erl",
@ -36,8 +38,8 @@ app_file(
modules = [":first_beam_files", ":beam_files"],
)
bazel_erlang_lib(
name = "bazel_erlang_lib",
erlang_app_info(
name = "erlang_app",
app_name = "ranch",
app = ":app_file",
hdrs = glob(["include/**/*.hrl"]),

View File

@ -1,6 +1,6 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib")
load("@rules_erlang//:erlang_app.bzl", "erlang_app")
erlang_lib(
erlang_app(
app_name = "trust_store_http",
app_description = "Trust store HTTP server",
app_module = "trust_store_http_app",
@ -9,7 +9,7 @@ erlang_lib(
"ssl",
],
deps = [
"@cowboy//:bazel_erlang_lib",
"@jsx//:bazel_erlang_lib",
"@cowboy//:erlang_app",
"@jsx//:erlang_app",
],
)

View File

@ -58,14 +58,15 @@ load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")
rules_pkg_dependencies()
git_repository(
name = "bazel-erlang",
commit = "d62a13548b3d1e5bd2830f42e3f3933ae17db3cb",
remote = "https://github.com/rabbitmq/bazel-erlang.git",
name = "rules_erlang",
branch = "v2",
# commit = "d62a13548b3d1e5bd2830f42e3f3933ae17db3cb",
remote = "https://github.com/rabbitmq/rules_erlang.git",
)
load("@bazel-erlang//:bazel_erlang.bzl", "bazel_erlang_deps")
load("@rules_erlang//:rules_erlang.bzl", "rules_erlang_dependencies")
bazel_erlang_deps()
rules_erlang_dependencies()
load("//:workspace_helpers.bzl", "rabbitmq_external_deps")
@ -84,7 +85,7 @@ pkg_zip(
name = "inet_tcp_proxy_ez",
package_dir = "inet_tcp_proxy/ebin",
srcs = [
"@inet_tcp_proxy//:bazel_erlang_lib",
"@inet_tcp_proxy//:erlang_app",
],
package_file_name = "inet_tcp_proxy.ez",
visibility = ["//visibility:public"],

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze", "plt")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
load("//:rabbitmq_run.bzl", "rabbitmq_run")
load(
"//:rabbitmq.bzl",
"assert_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -23,14 +23,14 @@ EXTRA_APPS = [
]
BUILD_DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
]
DEPS = [
"//deps/amqp10_common:bazel_erlang_lib",
"//deps/amqp10_common:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
@ -55,8 +55,8 @@ dialyze(
rabbitmq_home(
name = "broker-for-tests-home",
plugins = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_amqp1_0:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_amqp1_0:erlang_app",
],
)

View File

@ -1,11 +1,8 @@
load(
"@bazel-erlang//:bazel_erlang_lib.bzl",
"app_file",
"bazel_erlang_lib",
"erlc",
)
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:app_file.bzl", "app_file")
load("@rules_erlang//:erlang_app_info.bzl", "erlang_app_info")
load("@rules_erlang//:erlc.bzl", "erlc")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"APP_VERSION",
@ -65,8 +62,8 @@ erlc(
erlc_opts = RABBITMQ_ERLC_OPTS,
)
bazel_erlang_lib(
name = "bazel_erlang_lib",
erlang_app_info(
name = "erlang_app",
hdrs = ["include/amqp10_framing.hrl"] + glob(["include/*.hrl"]),
app = ":app_file",
app_name = "amqp10_common",
@ -82,8 +79,8 @@ erlc(
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
)
bazel_erlang_lib(
name = "test_bazel_erlang_lib",
erlang_app_info(
name = "test_erlang_app",
testonly = True,
hdrs = ["include/amqp10_framing.hrl"] + glob(["include/*.hrl"]),
app = ":app_file",

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze", "plt")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
load("//:rabbitmq_run.bzl", "rabbitmq_run")
load(
"//:rabbitmq.bzl",
"assert_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -21,10 +21,10 @@ EXTRA_APPS = [
]
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = "RabbitMQ AMQP Client",
app_env = APP_ENV,
app_module = "amqp_client",
@ -42,7 +42,7 @@ rabbitmq_lib(
xref(
additional_libs = [
"@ranch//:bazel_erlang_lib",
"@ranch//:erlang_app",
],
tags = ["xref"],
)
@ -61,7 +61,7 @@ dialyze(
rabbitmq_home(
name = "broker-for-tests-home",
plugins = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
],
)
@ -76,17 +76,17 @@ suites = [
name = "system_SUITE",
size = "large",
runtime_deps = [
"@meck//:bazel_erlang_lib",
"@meck//:erlang_app",
],
),
rabbitmq_suite(
name = "unit_SUITE",
size = "small",
runtime_deps = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
],
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
),
]

View File

@ -1,6 +1,6 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlc")
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze", "plt")
load("@rules_erlang//:erlc.bzl", "erlc")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
load("//:rabbitmq_run.bzl", "rabbitmq_run")
load(
@ -9,20 +9,27 @@ load(
"RABBITMQ_ERLC_OPTS",
"RABBITMQ_TEST_ERLC_OPTS",
"assert_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
load(":bats.bzl", "bats")
exports_files([
"scripts/rabbitmq-defaults",
"scripts/rabbitmq-defaults.bat",
"scripts/rabbitmq-diagnostics",
"scripts/rabbitmq-diagnostics.bat",
"scripts/rabbitmq-env",
"scripts/rabbitmq-env.bat",
"scripts/rabbitmq-plugins",
"scripts/rabbitmq-plugins.bat",
"scripts/rabbitmq-queues",
"scripts/rabbitmq-queues.bat",
"scripts/rabbitmq-server",
"scripts/rabbitmq-server.bat",
"scripts/rabbitmqctl",
"scripts/rabbitmqctl.bat",
"INSTALL",
])
@ -142,24 +149,24 @@ _APP_ENV = """[
"""
DEPS = [
"//deps/amqp10_common:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"@ra//:bazel_erlang_lib",
"@ranch//:bazel_erlang_lib",
"@stdout_formatter//:bazel_erlang_lib",
"@syslog//:bazel_erlang_lib",
"//deps/amqp10_common:erlang_app",
"//deps/rabbit_common:erlang_app",
"@ra//:erlang_app",
"@ranch//:erlang_app",
"@stdout_formatter//:erlang_app",
"@syslog//:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit/apps/rabbitmq_prelaunch:bazel_erlang_lib",
"@cuttlefish//:bazel_erlang_lib",
"@observer_cli//:bazel_erlang_lib",
"@osiris//:bazel_erlang_lib",
"@recon//:bazel_erlang_lib",
"@redbug//:bazel_erlang_lib",
"@seshat//:bazel_erlang_lib",
"@sysmon_handler//:bazel_erlang_lib",
"@systemd//:bazel_erlang_lib",
"//deps/rabbit/apps/rabbitmq_prelaunch:erlang_app",
"@cuttlefish//:erlang_app",
"@observer_cli//:erlang_app",
"@osiris//:erlang_app",
"@recon//:erlang_app",
"@redbug//:erlang_app",
"@seshat//:erlang_app",
"@sysmon_handler//:erlang_app",
"@systemd//:erlang_app",
]
APP_MODULE = "rabbit"
@ -193,7 +200,7 @@ FIRST_SRCS = [
"src/rabbit_queue_master_locator.erl",
]
rabbitmq_lib(
rabbitmq_app(
app_description = "RabbitMQ",
app_env = _APP_ENV,
app_module = APP_MODULE,
@ -231,16 +238,17 @@ bats(
["scripts/*"],
exclude = ["scripts/*.bat"],
),
tags = ["bats"],
)
rabbitmq_home(
name = "broker-for-tests-home",
testonly = True,
plugins = [
":test_bazel_erlang_lib",
"//deps/rabbitmq_ct_client_helpers:bazel_erlang_lib",
"@inet_tcp_proxy//:bazel_erlang_lib",
"@meck//:bazel_erlang_lib",
":test_erlang_app",
"//deps/rabbitmq_ct_client_helpers:erlang_app",
"@inet_tcp_proxy//:erlang_app",
"@meck//:erlang_app",
],
)
@ -269,8 +277,8 @@ erlc(
dest = "test",
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
deps = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
@ -283,8 +291,8 @@ erlc(
dest = "test",
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
deps = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
@ -401,7 +409,7 @@ suites = [
shard_count = 20,
sharding_method = "case",
deps = [
"@proper//:bazel_erlang_lib",
"@proper//:erlang_app",
],
),
rabbitmq_integration_suite(
@ -413,7 +421,7 @@ suites = [
],
flaky = True,
deps = [
"@proper//:bazel_erlang_lib",
"@proper//:erlang_app",
],
),
rabbitmq_integration_suite(
@ -435,7 +443,7 @@ suites = [
flaky = True,
shard_count = 5,
runtime_deps = [
"//deps/rabbit/test/feature_flags_SUITE_data/my_plugin:bazel_erlang_lib",
"//deps/rabbit/test/feature_flags_SUITE_data/my_plugin:erlang_app",
],
),
rabbitmq_integration_suite(
@ -451,7 +459,7 @@ suites = [
# This probably doesn't work because we are root in the remote docker image.
tags = ["exclusive"],
runtime_deps = [
"//deps/rabbit/test/feature_flags_SUITE_data/my_plugin:bazel_erlang_lib",
"//deps/rabbit/test/feature_flags_SUITE_data/my_plugin:erlang_app",
],
),
rabbitmq_integration_suite(
@ -473,7 +481,7 @@ suites = [
PACKAGE,
name = "logging_SUITE",
runtime_deps = [
"@syslog//:bazel_erlang_lib",
"@syslog//:erlang_app",
],
),
rabbitmq_integration_suite(
@ -503,7 +511,7 @@ suites = [
name = "metrics_SUITE",
size = "medium",
deps = [
"@proper//:bazel_erlang_lib",
"@proper//:erlang_app",
],
),
rabbitmq_suite(
@ -513,14 +521,14 @@ suites = [
"test/mirrored_supervisor_SUITE_gs.erl",
],
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_suite(
name = "msg_store_SUITE",
size = "small",
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_integration_suite(
@ -647,7 +655,7 @@ suites = [
name = "rabbit_confirms_SUITE",
size = "small",
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_integration_suite(
@ -659,13 +667,13 @@ suites = [
name = "rabbit_fifo_int_SUITE",
size = "medium",
runtime_deps = [
"@aten//:bazel_erlang_lib",
"@gen_batch_server//:bazel_erlang_lib",
"@meck//:bazel_erlang_lib",
"@ra//:bazel_erlang_lib",
"@aten//:erlang_app",
"@gen_batch_server//:erlang_app",
"@meck//:erlang_app",
"@ra//:erlang_app",
],
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_suite(
@ -681,11 +689,11 @@ suites = [
"-I deps/rabbit", # allow rabbit_fifo.hrl to be included at src/rabbit_fifo.hrl
],
runtime_deps = [
"@ra//:bazel_erlang_lib",
"@ra//:erlang_app",
],
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"@proper//:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"@proper//:erlang_app",
],
),
rabbitmq_suite(
@ -699,11 +707,11 @@ suites = [
"src/rabbit_fifo.hrl",
],
runtime_deps = [
"@meck//:bazel_erlang_lib",
"@ra//:bazel_erlang_lib",
"@meck//:erlang_app",
"@ra//:erlang_app",
],
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_suite(
@ -719,25 +727,25 @@ suites = [
"-I deps/rabbit", # allow rabbit_fifo.hrl to be included at src/rabbit_fifo.hrl
],
runtime_deps = [
"@meck//:bazel_erlang_lib",
"@ra//:bazel_erlang_lib",
"@meck//:erlang_app",
"@ra//:erlang_app",
],
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_suite(
name = "rabbit_msg_record_SUITE",
size = "medium",
deps = [
"//deps/amqp10_common:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/amqp10_common:erlang_app",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_suite(
name = "rabbit_stream_coordinator_SUITE",
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_integration_suite(
@ -750,7 +758,7 @@ suites = [
flaky = True,
shard_count = 12,
deps = [
"@proper//:bazel_erlang_lib",
"@proper//:erlang_app",
],
),
rabbitmq_integration_suite(
@ -801,7 +809,7 @@ suites = [
PACKAGE,
name = "term_to_binary_compat_prop_SUITE",
deps = [
"@proper//:bazel_erlang_lib",
"@proper//:erlang_app",
],
),
rabbitmq_integration_suite(
@ -823,7 +831,7 @@ suites = [
name = "unit_access_control_credential_validation_SUITE",
size = "medium",
deps = [
"@proper//:bazel_erlang_lib",
"@proper//:erlang_app",
],
),
rabbitmq_integration_suite(
@ -838,7 +846,7 @@ suites = [
name = "unit_amqp091_content_framing_SUITE",
size = "small",
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_integration_suite(
@ -855,23 +863,23 @@ suites = [
name = "unit_cluster_formation_locking_mocks_SUITE",
size = "small",
runtime_deps = [
"@meck//:bazel_erlang_lib",
"@meck//:erlang_app",
],
),
rabbitmq_suite(
name = "unit_collections_SUITE",
size = "small",
runtime_deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_suite(
name = "unit_config_value_encryption_SUITE",
size = "medium",
runtime_deps = [
"//deps/rabbit/apps/rabbitmq_prelaunch:test_bazel_erlang_lib",
"//deps/rabbit_common:test_bazel_erlang_lib",
"@credentials_obfuscation//:bazel_erlang_lib",
"//deps/rabbit/apps/rabbitmq_prelaunch:test_erlang_app",
"//deps/rabbit_common:test_erlang_app",
"@credentials_obfuscation//:erlang_app",
],
),
rabbitmq_integration_suite(
@ -908,8 +916,8 @@ suites = [
name = "unit_gm_SUITE",
size = "small",
runtime_deps = [
"//deps/rabbitmq_ct_helpers:bazel_erlang_lib",
"@meck//:bazel_erlang_lib",
"//deps/rabbitmq_ct_helpers:erlang_app",
"@meck//:erlang_app",
],
),
rabbitmq_integration_suite(
@ -921,7 +929,7 @@ suites = [
name = "unit_operator_policy_SUITE",
size = "small",
deps = [
"//deps/rabbit_common:test_bazel_erlang_lib",
"//deps/rabbit_common:test_erlang_app",
],
),
rabbitmq_suite(
@ -932,7 +940,7 @@ suites = [
name = "unit_plugin_directories_SUITE",
size = "small",
deps = [
"//deps/rabbit_common:test_bazel_erlang_lib",
"//deps/rabbit_common:test_erlang_app",
],
),
rabbitmq_integration_suite(
@ -988,15 +996,15 @@ suites = [
name = "unit_classic_mirrored_queue_sync_throttling_SUITE",
size = "small",
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
]
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_suite(
name = "unit_classic_mirrored_queue_throughput_SUITE",
size = "small",
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
]
"//deps/rabbit_common:erlang_app",
],
),
]

View File

@ -1,6 +1,6 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("//:rabbitmq.bzl", "APP_VERSION", "rabbitmq_lib", "rabbitmq_suite")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load("//:rabbitmq.bzl", "APP_VERSION", "rabbitmq_app", "rabbitmq_suite")
APP_NAME = "rabbitmq_prelaunch"
@ -9,15 +9,15 @@ APP_DESCRIPTION = "RabbitMQ prelaunch setup"
APP_MODULE = "rabbit_prelaunch_app"
RUNTIME_DEPS = [
"@cuttlefish//:bazel_erlang_lib",
"@jsx//:bazel_erlang_lib",
"@cuttlefish//:erlang_app",
"@jsx//:erlang_app",
]
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
@ -28,9 +28,9 @@ rabbitmq_lib(
xref(
additional_libs = [
"@ranch//:bazel_erlang_lib",
"@systemd//:bazel_erlang_lib",
"@osiris//:bazel_erlang_lib",
"@ranch//:erlang_app",
"@systemd//:erlang_app",
"@osiris//:erlang_app",
],
tags = ["xref"],
)

View File

@ -1,11 +1,11 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib")
load("@rules_erlang//:erlang_app.bzl", "erlang_app")
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
]
erlang_lib(
erlang_app(
app_description = "Plugin to test feature flags",
app_name = "my_plugin",
app_version = "1.0.0",

View File

@ -1,11 +1,8 @@
load(
"@bazel-erlang//:bazel_erlang_lib.bzl",
"app_file",
"bazel_erlang_lib",
"erlc",
)
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze", "plt")
load("@rules_erlang//:app_file.bzl", "app_file")
load("@rules_erlang//:erlang_app_info.bzl", "erlang_app_info")
load("@rules_erlang//:erlc.bzl", "erlc")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
"//:rabbitmq.bzl",
"APP_VERSION",
@ -62,9 +59,9 @@ genrule(
DEPS = []
RUNTIME_DEPS = [
"@jsx//:bazel_erlang_lib",
"@recon//:bazel_erlang_lib",
"@credentials_obfuscation//:bazel_erlang_lib",
"@jsx//:erlang_app",
"@recon//:erlang_app",
"@credentials_obfuscation//:erlang_app",
]
APP_NAME = "rabbit_common"
@ -124,8 +121,8 @@ erlc(
deps = DEPS,
)
bazel_erlang_lib(
name = "bazel_erlang_lib",
erlang_app_info(
name = "erlang_app",
hdrs = HDRS,
app = ":app_file",
app_name = APP_NAME,
@ -164,8 +161,8 @@ erlc(
deps = DEPS,
)
bazel_erlang_lib(
name = "test_bazel_erlang_lib",
erlang_app_info(
name = "test_erlang_app",
testonly = True,
hdrs = HDRS,
app = ":app_file",
@ -180,7 +177,7 @@ bazel_erlang_lib(
xref(
additional_libs = [
"@ranch//:bazel_erlang_lib",
"@ranch//:erlang_app",
],
tags = ["xref"],
)
@ -205,7 +202,7 @@ suites = [
name = "rabbit_env_SUITE",
size = "small",
deps = [
"@proper//:bazel_erlang_lib",
"@proper//:erlang_app",
],
),
rabbitmq_suite(
@ -223,8 +220,8 @@ suites = [
"test/gen_server2_test_server.erl",
],
deps = [
"@credentials_obfuscation//:bazel_erlang_lib",
"@proper//:bazel_erlang_lib",
"@credentials_obfuscation//:erlang_app",
"@proper//:erlang_app",
],
),
rabbitmq_suite(

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -25,16 +25,16 @@ BUILD_DEPS = [
]
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/amqp_client:bazel_erlang_lib",
"//deps/amqp10_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"//deps/amqp_client:erlang_app",
"//deps/amqp10_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_name = APP_NAME,
@ -65,7 +65,7 @@ suites = [
name = "amqp10_client_SUITE",
size = "medium",
runtime_deps = [
"//deps/amqp10_client:bazel_erlang_lib",
"//deps/amqp10_client:erlang_app",
],
),
rabbitmq_integration_suite(
@ -73,7 +73,7 @@ suites = [
name = "command_SUITE",
size = "medium",
deps = [
"//deps/amqp10_common:bazel_erlang_lib",
"//deps/amqp10_common:erlang_app",
],
),
rabbitmq_integration_suite(
@ -96,7 +96,7 @@ suites = [
name = "unit_SUITE",
size = "small",
deps = [
"//deps/amqp10_common:bazel_erlang_lib",
"//deps/amqp10_common:erlang_app",
],
),
]

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -25,18 +25,18 @@ APP_DESCRIPTION = "RabbitMQ Authentication Backend cache"
APP_MODULE = "rabbit_auth_backend_cache_app"
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
FIRST_SRCS = [
"src/rabbit_auth_cache.erl",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,
@ -70,7 +70,7 @@ suites = [
rabbitmq_suite(
name = "rabbit_auth_cache_SUITE",
runtime_deps = [
"//deps/rabbitmq_ct_helpers:bazel_erlang_lib",
"//deps/rabbitmq_ct_helpers:erlang_app",
],
),
]

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze", "plt")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -29,15 +29,15 @@ EXTRA_APPS = [
]
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
"//deps/amqp_client:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,
@ -73,10 +73,10 @@ suites = [
"test/auth_http_mock.erl",
],
runtime_deps = [
"@cowboy//:bazel_erlang_lib",
"@cowboy//:erlang_app",
],
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_integration_suite(

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze", "plt")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -45,14 +45,14 @@ EXTRA_APPS = [
]
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,

View File

@ -1,14 +1,14 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlc")
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:erlc.bzl", "erlc")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"RABBITMQ_TEST_ERLC_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -17,21 +17,21 @@ APP_NAME = "rabbitmq_auth_backend_oauth2"
APP_DESCRIPTION = "OAuth 2 and JWT-based AuthN and AuthZ backend"
BUILD_DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:rabbitmqctl",
]
DEPS = [
"@jose//:bazel_erlang_lib",
"@jose//:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"@base64url//:bazel_erlang_lib",
"@cowlib//:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
"@base64url//:erlang_app",
"@cowlib//:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
@ -83,14 +83,14 @@ suites = [
"test/jwks_http_sup.erl",
],
runtime_deps = [
"@cowboy//:bazel_erlang_lib",
"@cowboy//:erlang_app",
],
),
rabbitmq_suite(
name = "scope_SUITE",
size = "medium",
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_integration_suite(

View File

@ -1,9 +1,9 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"rabbitmq_lib",
"rabbitmq_app",
)
APP_NAME = "rabbitmq_auth_mechanism_ssl"
@ -17,14 +17,14 @@ APP_ENV = """[
]"""
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,

View File

@ -1,7 +1,7 @@
load("@bazel-erlang//:eunit.bzl", "eunit")
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze", "plt")
load("//:rabbitmq.bzl", "RABBITMQ_TEST_ERLC_OPTS", "rabbitmq_lib")
load("@rules_erlang//:eunit.bzl", "eunit")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load("//:rabbitmq.bzl", "RABBITMQ_TEST_ERLC_OPTS", "rabbitmq_app")
APP_NAME = "rabbitmq_aws"
@ -21,10 +21,10 @@ EXTRA_APPS = [
]
BUILD_DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
@ -35,11 +35,11 @@ rabbitmq_lib(
xref(
additional_libs = [
"//deps/rabbit_common:bazel_erlang_lib",
"@credentials_obfuscation//:bazel_erlang_lib",
"@jsx//:bazel_erlang_lib",
"@ranch//:bazel_erlang_lib",
"@recon//:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"@credentials_obfuscation//:erlang_app",
"@jsx//:erlang_app",
"@ranch//:erlang_app",
"@recon//:erlang_app",
],
tags = ["xref"],
)
@ -61,7 +61,7 @@ eunit(
"+nowarn_export_all",
],
runtime_deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"@meck//:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"@meck//:erlang_app",
],
)

View File

@ -1,10 +1,13 @@
load(":rabbitmqctl.bzl", "rabbitmqctl")
load(":rabbitmqctl_test.bzl", "rabbitmqctl_test")
load(":elixir.bzl", "elixir")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
load("//:rabbitmq_run.bzl", "rabbitmq_run")
load("//:rabbitmq.bzl", "STARTS_BACKGROUND_BROKER_TAG")
# This rule simply exposes elixir as a runtime lib for tests in erlang
elixir(
name = "elixir_as_bazel_erlang_lib",
name = "elixir_app",
visibility = ["//visibility:public"],
)
@ -18,10 +21,28 @@ rabbitmqctl(
]),
visibility = ["//visibility:public"],
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
)
rabbitmq_home(
name = "broker-for-cli-tests-home",
testonly = True,
plugins = [
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_federation:erlang_app",
"//deps/rabbitmq_stomp:erlang_app",
"//deps/amqp_client:erlang_app",
],
)
rabbitmq_run(
name = "rabbitmq-for-cli-tests-run",
testonly = True,
home = ":broker-for-cli-tests-home",
visibility = ["//visibility:public"],
)
rabbitmqctl_test(
name = "rabbitmqctl_tests",
size = "large",
@ -33,10 +54,11 @@ rabbitmqctl_test(
]),
data = glob(["test/fixtures/**/*"]),
flaky = True,
rabbitmq_run = "//:rabbitmq-for-cli-tests-run",
rabbitmq_run = ":rabbitmq-for-cli-tests-run",
tags = [STARTS_BACKGROUND_BROKER_TAG],
deps = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)

View File

@ -1,5 +1,6 @@
load("@bazel-erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider")
load("@bazel-erlang//:bazel_erlang_lib.bzl", "ErlangLibInfo", "path_join")
load("@rules_erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider")
load("@rules_erlang//:erlang_app_info.bzl", "ErlangAppInfo")
load("@rules_erlang//:util.bzl", "path_join", "windows_path")
load("//:elixir_home.bzl", "ElixirHomeProvider")
def _impl(ctx):
@ -9,6 +10,7 @@ def _impl(ctx):
ebin = ctx.actions.declare_directory(path_join(ctx.attr.name, "ebin"))
if not ctx.attr.is_windows:
ctx.actions.run(
inputs = [],
outputs = [ebin],
@ -19,14 +21,25 @@ def _impl(ctx):
ebin.dirname,
],
)
else:
# robocopy exits non-zero when new files are copied, so we can't
# just ctx.actions.run robocopy
ctx.actions.run_shell(
inputs = [],
outputs = [ebin],
command = "cp -R \"{elixir_home}\"/lib/elixir/ebin {ebin}".format(
elixir_home = elixir_home,
ebin = ebin.dirname,
),
)
return [
DefaultInfo(
files = depset([ebin]),
runfiles = ctx.runfiles([ebin]),
),
ErlangLibInfo(
lib_name = ctx.attr.name,
ErlangAppInfo(
app_name = ctx.attr.name,
erlang_version = erlang_version,
include = [],
beam = [ebin],
@ -35,11 +48,21 @@ def _impl(ctx):
),
]
elixir = rule(
elixir_private = rule(
implementation = _impl,
attrs = {
"_erlang_version": attr.label(default = "@bazel-erlang//:erlang_version"),
"_erlang_home": attr.label(default = "@bazel-erlang//:erlang_home"),
"_elixir_home": attr.label(default = "//:elixir_home"),
"is_windows": attr.bool(mandatory = True),
"_erlang_version": attr.label(default = Label("@rules_erlang//:erlang_version")),
"_erlang_home": attr.label(default = Label("@rules_erlang//:erlang_home")),
"_elixir_home": attr.label(default = Label("//:elixir_home")),
},
)
def elixir(**kwargs):
elixir_private(
is_windows = select({
"@bazel_tools//src/conditions:host_windows": True,
"//conditions:default": False,
}),
**kwargs
)

View File

@ -1,15 +1,18 @@
load("@bazel-erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider")
load("@rules_erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider")
load(
"@bazel-erlang//:bazel_erlang_lib.bzl",
"BEGINS_WITH_FUN",
"ErlangLibInfo",
"QUERY_ERL_VERSION",
"@rules_erlang//:erlang_app_info.bzl",
"ErlangAppInfo",
"flat_deps",
)
load(
"@rules_erlang//:util.bzl",
"BEGINS_WITH_FUN",
"QUERY_ERL_VERSION",
"path_join",
)
load("//:elixir_home.bzl", "ElixirHomeProvider")
MIX_DEPS_DIR = "mix_deps"
MIX_DEPS_DIR = "deps"
def _impl(ctx):
erlang_version = ctx.attr._erlang_version[ErlangVersionProvider].version
@ -22,11 +25,11 @@ def _impl(ctx):
copy_compiled_deps_commands = []
copy_compiled_deps_commands.append("mkdir ${{MIX_INVOCATION_DIR}}/{}".format(MIX_DEPS_DIR))
for dep in ctx.attr.deps:
lib_info = dep[ErlangLibInfo]
lib_info = dep[ErlangAppInfo]
if lib_info.erlang_version != erlang_version:
fail("Mismatched erlang versions", erlang_version, lib_info.erlang_version)
dest_dir = path_join("${MIX_INVOCATION_DIR}", MIX_DEPS_DIR, lib_info.lib_name)
dest_dir = path_join("${MIX_INVOCATION_DIR}", MIX_DEPS_DIR, lib_info.app_name)
copy_compiled_deps_commands.append(
"mkdir {}".format(dest_dir),
)
@ -57,49 +60,48 @@ def _impl(ctx):
if ctx.label.workspace_root != "":
package_dir = path_join(ctx.label.workspace_root, package_dir)
script = """
set -euo pipefail
script = """set -euo pipefail
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
export PATH={elixir_home}/bin:{erlang_home}/bin:${{PATH}}
export PATH="{elixir_home}"/bin:"{erlang_home}"/bin:${{PATH}}
MIX_INVOCATION_DIR="{mix_invocation_dir}"
MIX_INVOCATION_DIR="{mix_invocation_dir}"
cp -R ${{PWD}}/{package_dir}/config ${{MIX_INVOCATION_DIR}}/config
# cp -R ${{PWD}}/{package_dir}/include ${{MIX_INVOCATION_DIR}}/include # rabbitmq_cli's include directory is empty
cp -R ${{PWD}}/{package_dir}/lib ${{MIX_INVOCATION_DIR}}/lib
cp ${{PWD}}/{package_dir}/mix.exs ${{MIX_INVOCATION_DIR}}/mix.exs
cp -R ${{PWD}}/{package_dir}/config ${{MIX_INVOCATION_DIR}}/config
# cp -R ${{PWD}}/{package_dir}/include ${{MIX_INVOCATION_DIR}}/include # rabbitmq_cli's include directory is empty
cp -R ${{PWD}}/{package_dir}/lib ${{MIX_INVOCATION_DIR}}/lib
cp ${{PWD}}/{package_dir}/mix.exs ${{MIX_INVOCATION_DIR}}/mix.exs
{copy_compiled_deps_command}
{copy_compiled_deps_command}
cd ${{MIX_INVOCATION_DIR}}
export HOME=${{PWD}}
cd ${{MIX_INVOCATION_DIR}}
export HOME=${{PWD}}
{begins_with_fun}
V=$({query_erlang_version})
if ! beginswith "{erlang_version}" "$V"; then
{begins_with_fun}
V=$("{erlang_home}"/bin/{query_erlang_version})
if ! beginswith "{erlang_version}" "$V"; then
echo "Erlang version mismatch (Expected {erlang_version}, found $V)"
exit 1
fi
fi
export DEPS_DIR={mix_deps_dir}
export ERL_COMPILER_OPTIONS=deterministic
mix local.hex --force
mix local.rebar --force
mix make_all
export DEPS_DIR={mix_deps_dir}
export ERL_COMPILER_OPTIONS=deterministic
"{elixir_home}"/bin/mix local.hex --force
"{elixir_home}"/bin/mix local.rebar --force
"{elixir_home}"/bin/mix make_all_in_src_archive
cd ${{OLDPWD}}
cp ${{MIX_INVOCATION_DIR}}/escript/rabbitmqctl {escript_path}
cd ${{OLDPWD}}
cp ${{MIX_INVOCATION_DIR}}/escript/rabbitmqctl {escript_path}
mkdir -p {ebin_dir}
mv ${{MIX_INVOCATION_DIR}}/_build/dev/lib/rabbitmqctl/ebin/* {ebin_dir}
mv ${{MIX_INVOCATION_DIR}}/_build/dev/lib/rabbitmqctl/consolidated/* {ebin_dir}
mkdir -p {ebin_dir}
mv ${{MIX_INVOCATION_DIR}}/_build/dev/lib/rabbitmqctl/ebin/* {ebin_dir}
mv ${{MIX_INVOCATION_DIR}}/_build/dev/lib/rabbitmqctl/consolidated/* {ebin_dir}
rm -dR ${{MIX_INVOCATION_DIR}}
mkdir ${{MIX_INVOCATION_DIR}}
touch ${{MIX_INVOCATION_DIR}}/placeholder
rm -dR ${{MIX_INVOCATION_DIR}}
mkdir ${{MIX_INVOCATION_DIR}}
touch ${{MIX_INVOCATION_DIR}}/placeholder
""".format(
begins_with_fun = BEGINS_WITH_FUN,
query_erlang_version = QUERY_ERL_VERSION,
@ -108,7 +110,7 @@ def _impl(ctx):
elixir_home = elixir_home,
mix_invocation_dir = mix_invocation_dir.path,
package_dir = package_dir,
copy_compiled_deps_command = " && ".join(copy_compiled_deps_commands),
copy_compiled_deps_command = "\n".join(copy_compiled_deps_commands),
mix_deps_dir = MIX_DEPS_DIR,
escript_path = escript.path,
ebin_dir = ebin.path,
@ -117,7 +119,7 @@ def _impl(ctx):
inputs = []
inputs.extend(ctx.files.srcs)
for dep in ctx.attr.deps:
lib_info = dep[ErlangLibInfo]
lib_info = dep[ErlangAppInfo]
inputs.extend(lib_info.include)
inputs.extend(lib_info.beam)
@ -140,8 +142,8 @@ def _impl(ctx):
files = depset([ebin]),
runfiles = runfiles,
),
ErlangLibInfo(
lib_name = ctx.attr.name,
ErlangAppInfo(
app_name = ctx.attr.name,
erlang_version = erlang_version,
include = [],
beam = [ebin],
@ -150,14 +152,24 @@ def _impl(ctx):
),
]
rabbitmqctl = rule(
rabbitmqctl_private = rule(
implementation = _impl,
attrs = {
"is_windows": attr.bool(mandatory = True),
"srcs": attr.label_list(allow_files = True),
"deps": attr.label_list(providers = [ErlangLibInfo]),
"_erlang_version": attr.label(default = "@bazel-erlang//:erlang_version"),
"_erlang_home": attr.label(default = "@bazel-erlang//:erlang_home"),
"_elixir_home": attr.label(default = "//:elixir_home"),
"deps": attr.label_list(providers = [ErlangAppInfo]),
"_erlang_version": attr.label(default = Label("@rules_erlang//:erlang_version")),
"_erlang_home": attr.label(default = Label("@rules_erlang//:erlang_home")),
"_elixir_home": attr.label(default = Label("//:elixir_home")),
},
executable = True,
)
def rabbitmqctl(**kwargs):
rabbitmqctl_private(
is_windows = select({
"@bazel_tools//src/conditions:host_windows": True,
"//conditions:default": False,
}),
**kwargs
)

View File

@ -1,151 +1,195 @@
load("@bazel-erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider")
load("@bazel-erlang//:bazel_erlang_lib.bzl", "BEGINS_WITH_FUN", "ErlangLibInfo", "QUERY_ERL_VERSION", "path_join")
load("@bazel-erlang//:ct.bzl", "code_paths")
load("@rules_erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider")
load(
"@rules_erlang//:erlang_app_info.bzl",
"ErlangAppInfo",
)
load(
"@rules_erlang//:util.bzl",
"BEGINS_WITH_FUN",
"QUERY_ERL_VERSION",
"path_join",
"windows_path",
)
load(
"@rules_erlang//private:ct.bzl",
"ERL_LIBS_DIR",
"code_paths",
"erl_libs_contents",
)
load("//:elixir_home.bzl", "ElixirHomeProvider")
load(":rabbitmqctl.bzl", "MIX_DEPS_DIR")
def _lib_dirs(dep):
return [path_join(p, "..") for p in code_paths(dep)]
def _impl(ctx):
erlang_version = ctx.attr._erlang_version[ErlangVersionProvider].version
erlang_home = ctx.attr._erlang_home[ErlangHomeProvider].path
elixir_home = ctx.attr._elixir_home[ElixirHomeProvider].path
copy_compiled_deps_commands = []
copy_compiled_deps_commands.append("mkdir ${{TEST_UNDECLARED_OUTPUTS_DIR}}/{}".format(MIX_DEPS_DIR))
for dep in ctx.attr.deps:
lib_info = dep[ErlangLibInfo]
if lib_info.erlang_version != erlang_version:
fail("Mismatched erlang versions", erlang_version, lib_info.erlang_version)
erl_libs_files = erl_libs_contents(ctx, headers = True)
dest_dir = path_join("${TEST_UNDECLARED_OUTPUTS_DIR}", MIX_DEPS_DIR, lib_info.lib_name)
copy_compiled_deps_commands.append(
"mkdir {}".format(dest_dir),
)
copy_compiled_deps_commands.append(
"mkdir {}".format(path_join(dest_dir, "include")),
)
copy_compiled_deps_commands.append(
"mkdir {}".format(path_join(dest_dir, "ebin")),
)
for hdr in lib_info.include:
copy_compiled_deps_commands.append(
"cp ${{PWD}}/{source} {target}".format(
source = hdr.short_path,
target = path_join(dest_dir, "include", hdr.basename),
),
)
for beam in lib_info.beam:
copy_compiled_deps_commands.append(
"cp ${{PWD}}/{source} {target}".format(
source = beam.short_path,
target = path_join(dest_dir, "ebin", beam.basename),
),
)
package_dir = path_join(ctx.label.workspace_root, ctx.label.package)
erl_libs = ":".join(
[path_join("${TEST_SRCDIR}/${TEST_WORKSPACE}", d) for dep in ctx.attr.deps for d in _lib_dirs(dep)],
)
erl_libs_path = path_join(package_dir, ERL_LIBS_DIR)
script = """
set -euo pipefail
if not ctx.attr.is_windows:
output = ctx.actions.declare_file(ctx.label.name)
script = """set -euo pipefail
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
export PATH={elixir_home}/bin:{erlang_home}/bin:${{PATH}}
export PATH="{elixir_home}"/bin:"{erlang_home}"/bin:${{PATH}}
INITIAL_DIR=${{PWD}}
INITIAL_DIR=${{PWD}}
ln -s ${{PWD}}/{package_dir}/config ${{TEST_UNDECLARED_OUTPUTS_DIR}}
# ln -s ${{PWD}}/{package_dir}/include ${{TEST_UNDECLARED_OUTPUTS_DIR}}
ln -s ${{PWD}}/{package_dir}/lib ${{TEST_UNDECLARED_OUTPUTS_DIR}}
ln -s ${{PWD}}/{package_dir}/test ${{TEST_UNDECLARED_OUTPUTS_DIR}}
ln -s ${{PWD}}/{package_dir}/mix.exs ${{TEST_UNDECLARED_OUTPUTS_DIR}}
ln -s ${{PWD}}/{package_dir}/config ${{TEST_UNDECLARED_OUTPUTS_DIR}}
# ln -s ${{PWD}}/{package_dir}/include ${{TEST_UNDECLARED_OUTPUTS_DIR}}
ln -s ${{PWD}}/{package_dir}/lib ${{TEST_UNDECLARED_OUTPUTS_DIR}}
ln -s ${{PWD}}/{package_dir}/test ${{TEST_UNDECLARED_OUTPUTS_DIR}}
ln -s ${{PWD}}/{package_dir}/mix.exs ${{TEST_UNDECLARED_OUTPUTS_DIR}}
{copy_compiled_deps_command}
cd ${{TEST_UNDECLARED_OUTPUTS_DIR}}
cd ${{TEST_UNDECLARED_OUTPUTS_DIR}}
export HOME=${{PWD}}
export HOME=${{PWD}}
{begins_with_fun}
V=$({query_erlang_version})
if ! beginswith "{erlang_version}" "$V"; then
{begins_with_fun}
V=$("{erlang_home}"/bin/{query_erlang_version})
if ! beginswith "{erlang_version}" "$V"; then
echo "Erlang version mismatch (Expected {erlang_version}, found $V)"
exit 1
fi
fi
export DEPS_DIR={mix_deps_dir}
export ERL_COMPILER_OPTIONS=deterministic
mix local.hex --force
mix local.rebar --force
mix make_deps
export DEPS_DIR=$TEST_SRCDIR/$TEST_WORKSPACE/{erl_libs_path}
export ERL_COMPILER_OPTIONS=deterministic
export MIX_ENV=test mix dialyzer
"{elixir_home}"/bin/mix local.hex --force
"{elixir_home}"/bin/mix local.rebar --force
"{elixir_home}"/bin/mix make_all
# due to https://github.com/elixir-lang/elixir/issues/7699 we
# "run" the tests, but skip them all, in order to trigger
# compilation of all *_test.exs files before we actually run them
mix test --exclude test
# due to https://github.com/elixir-lang/elixir/issues/7699 we
# "run" the tests, but skip them all, in order to trigger
# compilation of all *_test.exs files before we actually run them
"{elixir_home}"/bin/mix test --exclude test
export TEST_TMPDIR=${{TEST_UNDECLARED_OUTPUTS_DIR}}
export TEST_TMPDIR=${{TEST_UNDECLARED_OUTPUTS_DIR}}
# we need a running broker with certain plugins for this to pass
trap 'catch $?' EXIT
catch() {{
# we need a running broker with certain plugins for this to pass
trap 'catch $?' EXIT
catch() {{
pid=$(cat ${{TEST_TMPDIR}}/*/*.pid)
kill -TERM "${{pid}}"
}}
cd ${{INITIAL_DIR}}
./{rabbitmq_run_cmd} start-background-broker
cd ${{TEST_UNDECLARED_OUTPUTS_DIR}}
}}
cd ${{INITIAL_DIR}}
./{rabbitmq_run_cmd} start-background-broker
cd ${{TEST_UNDECLARED_OUTPUTS_DIR}}
# The test cases will need to be able to load code from the deps
# directly, so we set ERL_LIBS
export ERL_LIBS={erl_libs}
# The test cases will need to be able to load code from the deps
# directly, so we set ERL_LIBS
export ERL_LIBS=$DEPS_DIR
# run the actual tests
mix test --trace --max-failures 1
# run the actual tests
"{elixir_home}"/bin/mix test --trace --max-failures 1
""".format(
begins_with_fun = BEGINS_WITH_FUN,
query_erlang_version = QUERY_ERL_VERSION,
erlang_version = erlang_version,
erlang_home = erlang_home,
elixir_home = elixir_home,
package_dir = ctx.label.package,
copy_compiled_deps_command = " && ".join(copy_compiled_deps_commands),
mix_deps_dir = MIX_DEPS_DIR,
erl_libs = erl_libs,
package_dir = package_dir,
erl_libs_path = erl_libs_path,
rabbitmq_run_cmd = ctx.attr.rabbitmq_run[DefaultInfo].files_to_run.executable.short_path,
)
else:
output = ctx.actions.declare_file(ctx.label.name + ".bat")
script = """@echo off
echo Erlang Version: {erlang_version}
:: set LANG="en_US.UTF-8"
:: set LC_ALL="en_US.UTF-8"
set PATH="{elixir_home}\\bin";"{erlang_home}\\bin";%PATH%
set OUTPUTS_DIR=%TEST_UNDECLARED_OUTPUTS_DIR:/=\\%
:: robocopy exits non-zero when files are copied successfully
:: https://social.msdn.microsoft.com/Forums/en-US/d599833c-dcea-46f5-85e9-b1f028a0fefe/robocopy-exits-with-error-code-1?forum=tfsbuild
robocopy {package_dir}\\config %OUTPUTS_DIR%\\config /E /NFL /NDL /NJH /NJS /nc /ns /np
robocopy {package_dir}\\lib %OUTPUTS_DIR%\\lib /E /NFL /NDL /NJH /NJS /nc /ns /np
robocopy {package_dir}\\test %OUTPUTS_DIR%\\test /E /NFL /NDL /NJH /NJS /nc /ns /np
copy {package_dir}\\mix.exs %OUTPUTS_DIR%\\mix.exs || goto :error
cd %OUTPUTS_DIR% || goto :error
set DEPS_DIR=%TEST_SRCDIR%/%TEST_WORKSPACE%/{erl_libs_path}
set DEPS_DIR=%DEPS_DIR:/=\\%
set ERL_COMPILER_OPTIONS=deterministic
set MIX_ENV=test mix dialyzer
echo y | "{elixir_home}\\bin\\mix" local.hex --force || goto :error
echo y | "{elixir_home}\\bin\\mix" local.rebar --force || goto :error
echo y | "{elixir_home}\\bin\\mix" make_all || goto :error
REM need to start the background broker here
set TEST_TEMPDIR=%OUTPUTS_DIR%
set ERL_LIBS=%DEPS_DIR%
"{elixir_home}\\bin\\mix" test --trace --max-failures 1 || goto :error
goto :EOF
:error
exit /b 1
""".format(
erlang_version = erlang_version,
erlang_home = windows_path(ctx.attr._erlang_home[ErlangHomeProvider].path),
elixir_home = windows_path(elixir_home),
package_dir = windows_path(ctx.label.package),
erl_libs_path = erl_libs_path,
rabbitmq_run_cmd = ctx.attr.rabbitmq_run[DefaultInfo].files_to_run.executable.short_path,
test_env = "",
filter_tests_args = "",
dir = "",
package = "",
)
ctx.actions.write(
output = ctx.outputs.executable,
output = output,
content = script,
)
runfiles = ctx.runfiles(ctx.files.srcs)
runfiles = runfiles.merge(ctx.runfiles(ctx.files.data))
runfiles = ctx.runfiles(
files = ctx.files.srcs + ctx.files.data,
transitive_files = depset(erl_libs_files),
)
for dep in ctx.attr.deps:
lib_info = dep[ErlangLibInfo]
lib_info = dep[ErlangAppInfo]
runfiles = runfiles.merge(ctx.runfiles(lib_info.include + lib_info.beam))
runfiles = runfiles.merge(ctx.attr.rabbitmq_run[DefaultInfo].default_runfiles)
return [DefaultInfo(runfiles = runfiles)]
return [DefaultInfo(
runfiles = runfiles,
executable = output,
)]
rabbitmqctl_test = rule(
rabbitmqctl_private_test = rule(
implementation = _impl,
attrs = {
"is_windows": attr.bool(mandatory = True),
"srcs": attr.label_list(allow_files = [".ex", ".exs"]),
"data": attr.label_list(allow_files = True),
"deps": attr.label_list(providers = [ErlangLibInfo]),
"deps": attr.label_list(providers = [ErlangAppInfo]),
"rabbitmq_run": attr.label(
executable = True,
cfg = "target",
),
"_erlang_version": attr.label(default = "@bazel-erlang//:erlang_version"),
"_erlang_home": attr.label(default = "@bazel-erlang//:erlang_home"),
"_elixir_home": attr.label(default = "//:elixir_home"),
"_erlang_version": attr.label(default = Label("@rules_erlang//:erlang_version")),
"_erlang_home": attr.label(default = Label("@rules_erlang//:erlang_home")),
"_elixir_home": attr.label(default = Label("//:elixir_home")),
},
test = True,
)
def rabbitmqctl_test(**kwargs):
rabbitmqctl_private_test(
is_windows = select({
"@bazel_tools//src/conditions:host_windows": True,
"//conditions:default": False,
}),
**kwargs
)

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
)
APP_NAME = "rabbitmq_consistent_hash_exchange"
@ -18,14 +18,14 @@ BUILD_DEPS = [
]
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_name = APP_NAME,
build_deps = BUILD_DEPS,

View File

@ -1,11 +1,11 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib")
load("@rules_erlang//:erlang_app.bzl", "erlang_app")
erlang_lib(
erlang_app(
app_name = "rabbitmq_ct_client_helpers",
app_version = "master",
deps = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbitmq_ct_helpers:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_ct_helpers:erlang_app",
],
)

View File

@ -1,6 +1,6 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib")
load("@rules_erlang//:erlang_app.bzl", "erlang_app")
erlang_lib(
erlang_app(
app_name = "rabbitmq_ct_helpers",
app_version = "master",
extra_priv = [
@ -8,7 +8,7 @@ erlang_lib(
"tools/tls-certs/openssl.cnf.in",
],
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"@proper//:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"@proper//:erlang_app",
],
)

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -15,11 +15,11 @@ APP_NAME = "rabbitmq_event_exchange"
APP_DESCRIPTION = "Event Exchange Type"
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_name = APP_NAME,
deps = DEPS,
@ -49,7 +49,7 @@ suites = [
rabbitmq_suite(
name = "unit_SUITE",
runtime_deps = [
"//deps/rabbitmq_ct_helpers:bazel_erlang_lib",
"//deps/rabbitmq_ct_helpers:erlang_app",
],
),
]

View File

@ -1,14 +1,14 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlc")
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:erlc.bzl", "erlc")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"RABBITMQ_TEST_ERLC_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -28,12 +28,12 @@ BUILD_DEPS = [
]
DEPS = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,
@ -65,9 +65,9 @@ erlc(
dest = "test",
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
deps = [
":test_bazel_erlang_lib",
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
":test_erlang_app",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
],
)
@ -123,8 +123,8 @@ suites = [
rabbitmq_suite(
name = "unit_SUITE",
deps = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
],
),
]

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
)
APP_NAME = "rabbitmq_federation_management"
@ -16,21 +16,21 @@ APP_DESCRIPTION = "RabbitMQ Federation Management"
APP_MODULE = "rabbit_federation_app"
BUILD_DEPS = [
"//deps/rabbitmq_management_agent:bazel_erlang_lib",
"//deps/rabbitmq_management_agent:erlang_app",
]
DEPS = [
"//deps/rabbitmq_management:bazel_erlang_lib",
"//deps/rabbitmq_management:erlang_app",
]
RUNTIME_DEPS = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_federation:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_federation:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -17,14 +17,14 @@ APP_DESCRIPTION = "RabbitMQ JMS topic selector exchange plugin"
APP_MODULE = "rabbit_federation_app"
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
@ -53,8 +53,8 @@ suites = [
name = "rjms_topic_selector_unit_SUITE",
size = "small",
deps = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_suite(

View File

@ -1,14 +1,14 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlc")
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:erlc.bzl", "erlc")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"APP_VERSION",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -43,16 +43,16 @@ FIRST_SRCS = [
]
DEPS = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_management_agent:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbitmq_web_dispatch:bazel_erlang_lib",
"@cowboy//:bazel_erlang_lib",
"@cowlib//:bazel_erlang_lib",
"//deps/rabbitmq_web_dispatch:erlang_app",
"@cowboy//:erlang_app",
"@cowlib//:erlang_app",
]
genrule(
@ -65,7 +65,7 @@ sed 's/%%VSN%%/{}/' $< > $@
""".format(APP_VERSION),
)
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,
@ -95,7 +95,7 @@ erlc(
],
dest = "test",
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
)
@ -106,10 +106,10 @@ suites = [
name = "cache_SUITE",
size = "small",
runtime_deps = [
"//deps/rabbitmq_ct_helpers:bazel_erlang_lib",
"//deps/rabbitmq_ct_helpers:erlang_app",
],
deps = [
"@proper//:bazel_erlang_lib",
"@proper//:erlang_app",
],
),
rabbitmq_integration_suite(
@ -117,8 +117,8 @@ suites = [
name = "clustering_prop_SUITE",
size = "large",
deps = [
"//deps/rabbitmq_management_agent:bazel_erlang_lib",
"@proper//:bazel_erlang_lib",
"//deps/rabbitmq_management_agent:erlang_app",
"@proper//:erlang_app",
],
),
rabbitmq_integration_suite(
@ -126,7 +126,7 @@ suites = [
name = "clustering_SUITE",
flaky = True,
deps = [
"//deps/rabbitmq_management_agent:bazel_erlang_lib",
"//deps/rabbitmq_management_agent:erlang_app",
],
),
rabbitmq_integration_suite(
@ -169,18 +169,18 @@ suites = [
name = "rabbit_mgmt_stats_SUITE",
size = "small",
runtime_deps = [
"//deps/rabbitmq_ct_helpers:bazel_erlang_lib",
"//deps/rabbitmq_ct_helpers:erlang_app",
],
deps = [
"//deps/rabbitmq_management_agent:bazel_erlang_lib",
"@proper//:bazel_erlang_lib",
"//deps/rabbitmq_management_agent:erlang_app",
"@proper//:erlang_app",
],
),
rabbitmq_integration_suite(
PACKAGE,
name = "rabbit_mgmt_test_db_SUITE",
deps = [
"//deps/rabbitmq_management_agent:bazel_erlang_lib",
"//deps/rabbitmq_management_agent:erlang_app",
],
),
rabbitmq_suite(
@ -191,8 +191,8 @@ suites = [
name = "stats_SUITE",
size = "small",
deps = [
"//deps/rabbitmq_management_agent:bazel_erlang_lib",
"@proper//:bazel_erlang_lib",
"//deps/rabbitmq_management_agent:erlang_app",
"@proper//:erlang_app",
],
),
]

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze", "plt")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -39,11 +39,11 @@ BUILD_DEPS = [
]
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,
@ -80,7 +80,7 @@ suites = [
name = "exometer_slide_SUITE",
size = "medium",
deps = [
"@proper//:bazel_erlang_lib",
"@proper//:erlang_app",
],
),
rabbitmq_integration_suite(
@ -97,10 +97,10 @@ suites = [
name = "rabbit_mgmt_slide_SUITE",
size = "small",
runtime_deps = [
"//deps/rabbitmq_ct_helpers:bazel_erlang_lib",
"//deps/rabbitmq_ct_helpers:erlang_app",
],
deps = [
"@proper//:bazel_erlang_lib",
"@proper//:erlang_app",
],
),
]

View File

@ -1,14 +1,14 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlc")
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:erlc.bzl", "erlc")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"RABBITMQ_TEST_ERLC_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -50,17 +50,17 @@ BUILD_DEPS = [
]
DEPS = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"@ra//:bazel_erlang_lib",
"@ranch//:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"@ra//:erlang_app",
"@ranch//:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,
@ -90,7 +90,7 @@ erlc(
dest = "test",
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
)
@ -104,7 +104,7 @@ suites = [
":rabbit_auth_backend_mqtt_mock",
],
runtime_deps = [
"@emqttc//:bazel_erlang_lib",
"@emqttc//:erlang_app",
],
),
rabbitmq_integration_suite(
@ -113,14 +113,14 @@ suites = [
size = "large",
flaky = True,
runtime_deps = [
"@emqttc//:bazel_erlang_lib",
"@emqttc//:erlang_app",
],
),
rabbitmq_integration_suite(
PACKAGE,
name = "command_SUITE",
runtime_deps = [
"@emqttc//:bazel_erlang_lib",
"@emqttc//:erlang_app",
],
),
rabbitmq_integration_suite(
@ -140,8 +140,8 @@ suites = [
name = "processor_SUITE",
size = "small",
deps = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_integration_suite(
@ -152,14 +152,14 @@ suites = [
PACKAGE,
name = "reader_SUITE",
runtime_deps = [
"@emqttc//:bazel_erlang_lib",
"@emqttc//:erlang_app",
],
),
rabbitmq_integration_suite(
PACKAGE,
name = "retainer_SUITE",
runtime_deps = [
"@emqttc//:bazel_erlang_lib",
"@emqttc//:erlang_app",
],
),
rabbitmq_suite(

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze", "plt")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -19,16 +19,16 @@ EXTRA_APPS = [
]
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbitmq_peer_discovery_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbitmq_aws:bazel_erlang_lib",
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_aws:erlang_app",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_name = APP_NAME,
extra_apps = EXTRA_APPS,
@ -76,14 +76,14 @@ suites = [
"external",
],
deps = [
"//deps/rabbitmq_ct_helpers:bazel_erlang_lib",
"//deps/rabbitmq_ct_helpers:erlang_app",
],
),
rabbitmq_suite(
name = "unit_SUITE",
size = "small",
runtime_deps = [
"@meck//:bazel_erlang_lib",
"@meck//:erlang_app",
],
),
]

View File

@ -1,5 +1,5 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze", "plt")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
@ -7,8 +7,8 @@ load(
"RABBITMQ_TEST_ERLC_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
)
APP_NAME = "rabbitmq_peer_discovery_common"
@ -22,14 +22,14 @@ EXTRA_APPS = [
]
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -17,15 +17,15 @@ APP_DESCRIPTION = "Consult-based RabbitMQ peer discovery backend"
APP_MODULE = "rabbitmq_peer_discovery_consul_app"
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbitmq_peer_discovery_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
@ -54,7 +54,7 @@ suites = [
name = "rabbitmq_peer_discovery_consul_SUITE",
size = "medium",
runtime_deps = [
"@meck//:bazel_erlang_lib",
"@meck//:erlang_app",
],
),
]

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -17,17 +17,17 @@ APP_DESCRIPTION = "etcd-based RabbitMQ peer discovery backend"
APP_MODULE = "rabbitmq_peer_discovery_etcd_app"
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbitmq_peer_discovery_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"@eetcd//:bazel_erlang_lib",
"@gun//:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
"@eetcd//:erlang_app",
"@gun//:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -17,15 +17,15 @@ APP_DESCRIPTION = "Kubernetes-based RabbitMQ peer discovery backend"
APP_MODULE = "rabbitmq_peer_discovery_k8s_app"
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbitmq_peer_discovery_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_peer_discovery_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
@ -54,7 +54,7 @@ suites = [
name = "rabbitmq_peer_discovery_k8s_SUITE",
size = "small",
runtime_deps = [
"@meck//:bazel_erlang_lib",
"@meck//:erlang_app",
],
),
]

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
)
APP_NAME = "rabbitmq_prometheus"
@ -18,22 +18,22 @@ APP_ENV = """[
]"""
BUILD_DEPS = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
]
DEPS = [
"@prometheus//:bazel_erlang_lib",
"@prometheus//:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_management_agent:bazel_erlang_lib",
"//deps/rabbitmq_web_dispatch:bazel_erlang_lib",
"@accept//:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
"//deps/rabbitmq_web_dispatch:erlang_app",
"@accept//:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_module = APP_MODULE,
app_name = APP_NAME,
build_deps = BUILD_DEPS,

View File

@ -1,9 +1,9 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"rabbitmq_lib",
"rabbitmq_app",
)
APP_NAME = "rabbitmq_random_exchange"
@ -11,14 +11,14 @@ APP_NAME = "rabbitmq_random_exchange"
APP_DESCRIPTION = "RabbitMQ Random Exchange"
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_name = APP_NAME,
runtime_deps = RUNTIME_DEPS,

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
)
APP_NAME = "rabbitmq_recent_history_exchange"
@ -14,14 +14,14 @@ APP_NAME = "rabbitmq_recent_history_exchange"
APP_DESCRIPTION = "RabbitMQ Recent History Exchange"
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_name = APP_NAME,
runtime_deps = RUNTIME_DEPS,

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
)
APP_NAME = "rabbitmq_sharding"
@ -14,11 +14,11 @@ APP_NAME = "rabbitmq_sharding"
APP_DESCRIPTION = "RabbitMQ Sharding Plugin"
DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_name = APP_NAME,
deps = DEPS,
@ -45,7 +45,7 @@ suites = [
PACKAGE,
name = "rabbit_sharding_SUITE",
deps = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
],
),
]

View File

@ -1,6 +1,6 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlc")
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:erlc.bzl", "erlc")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
load("//:rabbitmq_run.bzl", "rabbitmq_run")
load(
@ -8,8 +8,8 @@ load(
"RABBITMQ_DIALYZER_OPTS",
"RABBITMQ_TEST_ERLC_OPTS",
"assert_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -38,16 +38,16 @@ BUILD_DEPS = [
]
DEPS = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/amqp10_client:bazel_erlang_lib",
"//deps/rabbit:bazel_erlang_lib",
"//deps/amqp10_client:erlang_app",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,
@ -72,9 +72,9 @@ dialyze(
rabbitmq_home(
name = "broker-for-tests-home",
plugins = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_amqp1_0:bazel_erlang_lib",
":bazel_erlang_lib",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_amqp1_0:erlang_app",
":erlang_app",
],
)
@ -108,10 +108,10 @@ suites = [
name = "amqp10_shovel_SUITE",
size = "small",
runtime_deps = [
"@meck//:bazel_erlang_lib",
"@meck//:erlang_app",
],
deps = [
"//deps/amqp10_common:bazel_erlang_lib",
"//deps/amqp10_common:erlang_app",
],
),
rabbitmq_integration_suite(
@ -145,7 +145,7 @@ suites = [
name = "parameters_SUITE",
size = "medium",
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_integration_suite(

View File

@ -1,13 +1,13 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
load("//:rabbitmq_run.bzl", "rabbitmq_run")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
)
APP_NAME = "rabbitmq_shovel_management"
@ -15,21 +15,21 @@ APP_NAME = "rabbitmq_shovel_management"
APP_DESCRIPTION = "Management extension for the Shovel plugin"
BUILD_DEPS = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbitmq_management_agent:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
]
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbitmq_management:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_management:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_shovel:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_shovel:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_name = APP_NAME,
build_deps = BUILD_DEPS,
@ -48,9 +48,9 @@ dialyze(
rabbitmq_home(
name = "broker-for-tests-home",
plugins = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_amqp1_0:bazel_erlang_lib",
":bazel_erlang_lib",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_amqp1_0:erlang_app",
":erlang_app",
],
)

View File

@ -1,14 +1,14 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlc")
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:erlc.bzl", "erlc")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"RABBITMQ_TEST_ERLC_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -45,16 +45,16 @@ BUILD_DEPS = [
]
DEPS = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"@ranch//:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"@ranch//:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,
@ -89,7 +89,7 @@ erlc(
dest = "test",
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
deps = [
":test_bazel_erlang_lib",
":test_erlang_app",
],
)
@ -119,8 +119,8 @@ suites = [
name = "frame_SUITE",
size = "small",
deps = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
],
),
rabbitmq_integration_suite(
@ -154,8 +154,8 @@ suites = [
name = "util_SUITE",
size = "medium",
deps = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
],
),
]

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
)
APP_NAME = "rabbitmq_stream"
@ -32,17 +32,17 @@ APP_ENV = """[
]"""
BUILD_DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_cli:rabbitmqctl",
"@ranch//:bazel_erlang_lib",
"@ranch//:erlang_app",
]
DEPS = [
"//deps/rabbitmq_stream_common:bazel_erlang_lib",
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_stream_common:erlang_app",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,
@ -73,7 +73,7 @@ suites = [
data = glob(["test/rabbit_stream_SUITE_data/**/*"]),
flaky = True,
deps = [
"//deps/rabbitmq_stream_common:bazel_erlang_lib",
"//deps/rabbitmq_stream_common:erlang_app",
],
),
rabbitmq_integration_suite(
@ -93,8 +93,8 @@ suites = [
name = "rabbit_stream_SUITE",
shard_count = 3,
deps = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_stream_common:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_stream_common:erlang_app",
],
),
]

View File

@ -1,10 +1,10 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"rabbitmq_lib",
"rabbitmq_app",
"rabbitmq_suite",
)
@ -12,7 +12,7 @@ APP_NAME = "rabbitmq_stream_common"
APP_DESCRIPTION = "RabbitMQ Stream Common"
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_name = APP_NAME,
)

View File

@ -1,13 +1,13 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
load("//:rabbitmq_run.bzl", "rabbitmq_run")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
)
APP_NAME = "rabbitmq_stream_management"
@ -17,18 +17,18 @@ APP_DESCRIPTION = "RabbitMQ Stream Management"
APP_MODULE = "rabbit_stream_management"
BUILD_DEPS = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbitmq_management_agent:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
]
DEPS = [
"//deps/rabbitmq_management:bazel_erlang_lib",
"//deps/rabbitmq_stream:bazel_erlang_lib",
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_management:erlang_app",
"//deps/rabbitmq_stream:erlang_app",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
@ -47,9 +47,9 @@ dialyze(
rabbitmq_home(
name = "broker-for-tests-home",
plugins = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_amqp1_0:bazel_erlang_lib",
":bazel_erlang_lib",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_amqp1_0:erlang_app",
":erlang_app",
],
)

View File

@ -1,9 +1,9 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"rabbitmq_lib",
"rabbitmq_app",
)
APP_NAME = "rabbitmq_top"
@ -13,20 +13,20 @@ APP_DESCRIPTION = "RabbitMQ Top"
APP_MODULE = "rabbit_top_app"
BUILD_DEPS = [
"//deps/rabbitmq_management_agent:bazel_erlang_lib",
"//deps/rabbitmq_management_agent:erlang_app",
]
DEPS = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbitmq_management:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_management:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
)
APP_NAME = "rabbitmq_tracing"
@ -22,20 +22,20 @@ APP_ENV = """[
]"""
BUILD_DEPS = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbitmq_management_agent:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbitmq_management_agent:erlang_app",
]
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbitmq_management:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_management:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,

View File

@ -1,13 +1,13 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze", "plt")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
load("//:rabbitmq_run.bzl", "rabbitmq_run")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
)
APP_NAME = "rabbitmq_trust_store"
@ -28,14 +28,14 @@ EXTRA_APPS = [
]
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,
@ -65,10 +65,10 @@ dialyze(
rabbitmq_home(
name = "broker-for-tests-home",
plugins = [
"//deps/rabbit:bazel_erlang_lib",
":bazel_erlang_lib",
"//deps/amqp_client:bazel_erlang_lib",
"@ct_helper//:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
":erlang_app",
"//deps/amqp_client:erlang_app",
"@ct_helper//:erlang_app",
],
)
@ -89,8 +89,8 @@ suites = [
name = "system_SUITE",
flaky = True,
runtime_deps = [
"@ct_helper//:bazel_erlang_lib",
"@trust_store_http//:bazel_erlang_lib",
"@ct_helper//:erlang_app",
"@trust_store_http//:erlang_app",
],
),
]

View File

@ -1,5 +1,5 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze", "plt")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
load("//:rabbitmq_run.bzl", "rabbitmq_run")
load(
@ -7,8 +7,8 @@ load(
"APP_VERSION",
"RABBITMQ_DIALYZER_OPTS",
"assert_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -23,12 +23,12 @@ EXTRA_APPS = [
]
DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"@cowboy//:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
"@cowboy//:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
@ -55,8 +55,8 @@ rabbitmq_home(
name = "broker-for-tests-home",
testonly = True,
plugins = [
"//deps/rabbit:bazel_erlang_lib",
":test_bazel_erlang_lib",
"//deps/rabbit:erlang_app",
":test_erlang_app",
],
)

View File

@ -1,14 +1,14 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlc")
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:erlc.bzl", "erlc")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"RABBITMQ_TEST_ERLC_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
)
APP_NAME = "rabbitmq_web_mqtt"
@ -27,21 +27,21 @@ APP_ENV = """[
]"""
BUILD_DEPS = [
"//deps/amqp_client:bazel_erlang_lib",
"@ranch//:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"@ranch//:erlang_app",
]
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"@cowboy//:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"@cowboy//:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_mqtt:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_mqtt:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,

View File

@ -1,9 +1,9 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"rabbitmq_lib",
"rabbitmq_app",
)
APP_NAME = "rabbitmq_web_mqtt_examples"
@ -17,13 +17,13 @@ APP_ENV = """[
]"""
RUNTIME_DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_web_dispatch:bazel_erlang_lib",
"//deps/rabbitmq_web_mqtt:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_web_dispatch:erlang_app",
"//deps/rabbitmq_web_mqtt:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,

View File

@ -1,14 +1,14 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlc")
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:erlc.bzl", "erlc")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"RABBITMQ_TEST_ERLC_OPTS",
"assert_suites",
"broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)
@ -30,21 +30,21 @@ APP_ENV = """[
]"""
BUILD_DEPS = [
"//deps/amqp_client:bazel_erlang_lib",
"@ranch//:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"@ranch//:erlang_app",
]
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbitmq_stomp:bazel_erlang_lib",
"@cowboy//:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_stomp:erlang_app",
"@cowboy//:erlang_app",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,

View File

@ -1,9 +1,9 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS",
"rabbitmq_lib",
"rabbitmq_app",
)
APP_NAME = "rabbitmq_web_stomp_examples"
@ -17,13 +17,13 @@ APP_ENV = """[
]"""
RUNTIME_DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_web_dispatch:bazel_erlang_lib",
"//deps/rabbitmq_web_stomp:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_web_dispatch:erlang_app",
"//deps/rabbitmq_web_stomp:erlang_app",
]
rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,

View File

@ -1,6 +1,7 @@
load("@bazel-erlang//:erlang_home.bzl", "ErlangHomeProvider")
load("@bazel-erlang//:bazel_erlang_lib.bzl", "ErlangLibInfo", "flat_deps", "path_join")
load("@bazel-erlang//:ct.bzl", "additional_file_dest_relative_path")
load("@rules_erlang//:erlang_home.bzl", "ErlangHomeProvider")
load("@rules_erlang//:erlang_app_info.bzl", "ErlangAppInfo", "flat_deps")
load("@rules_erlang//:util.bzl", "path_join")
load("@rules_erlang//:ct.bzl", "additional_file_dest_relative_path")
load(
":rabbitmq_home.bzl",
"RABBITMQ_HOME_ATTRS",
@ -12,7 +13,7 @@ load(
def _collect_licenses_impl(ctx):
srcs = ctx.files.srcs + flatten([
d[ErlangLibInfo].license_files
d[ErlangAppInfo].license_files
for d in flat_deps(ctx.attr.deps)
])
@ -42,7 +43,7 @@ collect_licenses = rule(
implementation = _collect_licenses_impl,
attrs = {
"srcs": attr.label_list(allow_files = True),
"deps": attr.label_list(providers = [ErlangLibInfo]),
"deps": attr.label_list(providers = [ErlangAppInfo]),
},
)
@ -76,21 +77,21 @@ def _plugins_dir(ctx, plugins):
commands = ["set -euo pipefail", ""]
for plugin in plugins:
lib_info = plugin[ErlangLibInfo]
lib_info = plugin[ErlangAppInfo]
app_file = _app_file(lib_info)
extract_version = _extract_version(app_file.path)
commands.append("PLUGIN_VERSION=$({erlang_home}/bin/{extract_version})".format(erlang_home = erlang_home, extract_version = extract_version))
commands.append(
"echo \"Assembling {lib_name}-$PLUGIN_VERSION...\"".format(
lib_name = lib_info.lib_name,
lib_name = lib_info.app_name,
),
)
commands.append(
"mkdir -p {plugins_dir}/{lib_name}-$PLUGIN_VERSION/include".format(
plugins_dir = plugins_dir.path,
lib_name = lib_info.lib_name,
lib_name = lib_info.app_name,
),
)
for f in lib_info.include:
@ -98,7 +99,7 @@ def _plugins_dir(ctx, plugins):
"cp {src} {plugins_dir}/{lib_name}-$PLUGIN_VERSION/include/{dest}".format(
src = f.path,
plugins_dir = plugins_dir.path,
lib_name = lib_info.lib_name,
lib_name = lib_info.app_name,
dest = f.basename,
),
)
@ -107,18 +108,18 @@ def _plugins_dir(ctx, plugins):
commands.append(
"mkdir -p {plugins_dir}/{lib_name}-$PLUGIN_VERSION/ebin".format(
plugins_dir = plugins_dir.path,
lib_name = lib_info.lib_name,
lib_name = lib_info.app_name,
),
)
for f in lib_info.beam:
if f.is_directory:
if f.basename != "ebin":
fail("{} contains a directory in 'beam' that is not an ebin dir".format(lib_info.lib_name))
fail("{} contains a directory in 'beam' that is not an ebin dir".format(lib_info.app_name))
commands.append(
"cp -R {src} {plugins_dir}/{lib_name}-$PLUGIN_VERSION".format(
src = f.path,
plugins_dir = plugins_dir.path,
lib_name = lib_info.lib_name,
lib_name = lib_info.app_name,
),
)
else:
@ -126,7 +127,7 @@ def _plugins_dir(ctx, plugins):
"cp {src} {plugins_dir}/{lib_name}-$PLUGIN_VERSION/ebin/{dest}".format(
src = f.path,
plugins_dir = plugins_dir.path,
lib_name = lib_info.lib_name,
lib_name = lib_info.app_name,
dest = f.basename,
),
)
@ -138,7 +139,7 @@ def _plugins_dir(ctx, plugins):
"mkdir -p $(dirname {plugins_dir}/{lib_name}-$PLUGIN_VERSION/{dest}) && cp {src} {plugins_dir}/{lib_name}-$PLUGIN_VERSION/{dest}".format(
src = f.path,
plugins_dir = plugins_dir.path,
lib_name = lib_info.lib_name,
lib_name = lib_info.app_name,
dest = p,
),
)
@ -192,9 +193,18 @@ def _versioned_rabbitmq_home_impl(ctx):
),
]
versioned_rabbitmq_home = rule(
versioned_rabbitmq_home_private = rule(
implementation = _versioned_rabbitmq_home_impl,
attrs = dict(RABBITMQ_HOME_ATTRS.items() + {
"_erlang_home": attr.label(default = "@bazel-erlang//:erlang_home"),
"_erlang_home": attr.label(default = "@rules_erlang//:erlang_home"),
}.items()),
)
def versioned_rabbitmq_home(**kwargs):
versioned_rabbitmq_home_private(
is_windows = select({
"@bazel_tools//src/conditions:host_windows": True,
"//conditions:default": False,
}),
**kwargs
)

View File

@ -8,8 +8,8 @@ $(BAZELISK):
endif
define USER_BAZELRC
build --@bazel-erlang//:erlang_home=$(shell dirname $$(dirname $$(which erl)))
build --@bazel-erlang//:erlang_version=$(shell erl -eval '{ok, Version} = file:read_file(filename:join([code:root_dir(), "releases", erlang:system_info(otp_release), "OTP_VERSION"])), io:fwrite(Version), halt().' -noshell)
build --@rules_erlang//:erlang_home=$(shell dirname $$(dirname $$(which erl)))
build --@rules_erlang//:erlang_version=$(shell erl -eval '{ok, Version} = file:read_file(filename:join([code:root_dir(), "releases", erlang:system_info(otp_release), "OTP_VERSION"])), io:fwrite(Version), halt().' -noshell)
build --//:elixir_home=$(shell dirname $$(dirname $$(which iex)))/lib/elixir
# rabbitmqctl wait shells out to 'ps', which is broken in the bazel macOS

View File

@ -1,11 +1,11 @@
load(
"@bazel-erlang//:bazel_erlang_lib.bzl",
"@rules_erlang//:erlang_app.bzl",
"DEFAULT_ERLC_OPTS",
"DEFAULT_TEST_ERLC_OPTS",
"erlang_lib",
"test_erlang_lib",
"erlang_app",
"test_erlang_app",
)
load("@bazel-erlang//:ct_sharded.bzl", "ct_suite", "ct_suite_variant")
load("@rules_erlang//:ct_sharded.bzl", "ct_suite", "ct_suite_variant")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
load("//:rabbitmq_run.bzl", "rabbitmq_run")
@ -14,6 +14,10 @@ def without(item, elements):
c.remove(item)
return c
STARTS_BACKGROUND_BROKER_TAG = "starts-background-broker"
MIXED_VERSION_CLUSTER_TAG = "mixed-version-cluster"
RABBITMQ_ERLC_OPTS = DEFAULT_ERLC_OPTS + [
"-DINSTR_MOD=gm",
]
@ -31,46 +35,46 @@ RABBITMQ_DIALYZER_OPTS = [
APP_VERSION = "3.10.0"
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",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_amqp1_0:erlang_app",
"//deps/rabbitmq_auth_backend_cache:erlang_app",
"//deps/rabbitmq_auth_backend_http:erlang_app",
"//deps/rabbitmq_auth_backend_ldap:erlang_app",
"//deps/rabbitmq_auth_backend_oauth2:erlang_app",
"//deps/rabbitmq_auth_mechanism_ssl:erlang_app",
"//deps/rabbitmq_consistent_hash_exchange:erlang_app",
"//deps/rabbitmq_event_exchange:erlang_app",
"//deps/rabbitmq_federation:erlang_app",
"//deps/rabbitmq_federation_management:erlang_app",
"//deps/rabbitmq_jms_topic_exchange:erlang_app",
"//deps/rabbitmq_management:erlang_app",
"//deps/rabbitmq_mqtt:erlang_app",
"//deps/rabbitmq_peer_discovery_aws:erlang_app",
"//deps/rabbitmq_peer_discovery_consul:erlang_app",
"//deps/rabbitmq_peer_discovery_etcd:erlang_app",
"//deps/rabbitmq_peer_discovery_k8s:erlang_app",
"//deps/rabbitmq_prometheus:erlang_app",
"//deps/rabbitmq_random_exchange:erlang_app",
"//deps/rabbitmq_recent_history_exchange:erlang_app",
"//deps/rabbitmq_sharding:erlang_app",
"//deps/rabbitmq_shovel:erlang_app",
"//deps/rabbitmq_shovel_management:erlang_app",
"//deps/rabbitmq_stomp:erlang_app",
"//deps/rabbitmq_stream:erlang_app",
"//deps/rabbitmq_stream_management:erlang_app",
"//deps/rabbitmq_top:erlang_app",
"//deps/rabbitmq_tracing:erlang_app",
"//deps/rabbitmq_trust_store:erlang_app",
"//deps/rabbitmq_web_dispatch:erlang_app",
"//deps/rabbitmq_web_mqtt:erlang_app",
"//deps/rabbitmq_web_stomp:erlang_app",
]
LABELS_WITH_TEST_VERSIONS = [
"//deps/amqp10_common:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbit/apps/rabbitmq_prelaunch:bazel_erlang_lib",
"//deps/amqp10_common:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbit:erlang_app",
"//deps/rabbit/apps/rabbitmq_prelaunch:erlang_app",
]
def all_plugins(rabbitmq_workspace = "@rabbitmq-server"):
@ -80,12 +84,12 @@ def with_test_versions(deps):
r = []
for d in deps:
if d in LABELS_WITH_TEST_VERSIONS:
r.append(d.replace(":bazel_erlang_lib", ":test_bazel_erlang_lib"))
r.append(d.replace(":erlang_app", ":test_erlang_app"))
else:
r.append(d)
return r
def rabbitmq_lib(
def rabbitmq_app(
app_name = "",
app_version = APP_VERSION,
app_description = "",
@ -98,7 +102,7 @@ def rabbitmq_lib(
build_deps = [],
deps = [],
runtime_deps = []):
erlang_lib(
erlang_app(
app_name = app_name,
app_version = app_version,
app_description = app_description,
@ -117,7 +121,7 @@ def rabbitmq_lib(
runtime_deps = runtime_deps,
)
test_erlang_lib(
test_erlang_app(
app_name = app_name,
app_version = app_version,
app_description = app_description,
@ -150,8 +154,8 @@ def broker_for_integration_suites():
rabbitmq_home(
name = "broker-for-tests-home",
plugins = [
"//deps/rabbit:bazel_erlang_lib",
":bazel_erlang_lib",
"//deps/rabbit:erlang_app",
":erlang_app",
],
testonly = True,
)
@ -178,7 +182,7 @@ def rabbitmq_integration_suite(
ct_suite(
name = name,
suite_name = name,
tags = tags,
tags = tags + [STARTS_BACKGROUND_BROKER_TAG],
erlc_opts = select({
"//:debug_build": without("+deterministic", RABBITMQ_TEST_ERLC_OPTS + erlc_opts),
"//conditions:default": RABBITMQ_TEST_ERLC_OPTS + erlc_opts,
@ -198,14 +202,14 @@ def rabbitmq_integration_suite(
":rabbitmq-for-tests-run",
] + tools,
runtime_deps = [
"//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
"//deps/rabbitmq_cli:elixir_app",
"//deps/rabbitmq_cli:rabbitmqctl",
"//deps/rabbitmq_ct_client_helpers:bazel_erlang_lib",
"//deps/rabbitmq_ct_client_helpers:erlang_app",
] + runtime_deps,
deps = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbitmq_ct_helpers:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_ct_helpers:erlang_app",
] + deps,
**kwargs
)
@ -213,7 +217,7 @@ def rabbitmq_integration_suite(
ct_suite_variant(
name = name + "-mixed",
suite_name = name,
tags = tags + ["mixed-version-cluster"],
tags = tags + [STARTS_BACKGROUND_BROKER_TAG, MIXED_VERSION_CLUSTER_TAG],
data = data,
test_env = dict({
"SKIP_MAKE_TEST_DIST": "true",
@ -229,14 +233,14 @@ def rabbitmq_integration_suite(
"@rabbitmq-server-generic-unix-3.8.22//:rabbitmq-run",
] + tools,
runtime_deps = [
"//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
"//deps/rabbitmq_cli:elixir_app",
"//deps/rabbitmq_cli:rabbitmqctl",
"//deps/rabbitmq_ct_client_helpers:bazel_erlang_lib",
"//deps/rabbitmq_ct_client_helpers:erlang_app",
] + runtime_deps,
deps = [
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbitmq_ct_helpers:bazel_erlang_lib",
"//deps/amqp_client:erlang_app",
"//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_ct_helpers:erlang_app",
] + deps,
**kwargs
)

View File

@ -1,5 +1,6 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "ErlangLibInfo", "flat_deps", "path_join")
load("@bazel-erlang//:ct.bzl", "additional_file_dest_relative_path")
load("@rules_erlang//:erlang_app_info.bzl", "ErlangAppInfo", "flat_deps")
load("@rules_erlang//:util.bzl", "path_join")
load("@rules_erlang//:ct.bzl", "additional_file_dest_relative_path")
RabbitmqHomeInfo = provider(
doc = "An assembled RABBITMQ_HOME dir",
@ -10,13 +11,10 @@ RabbitmqHomeInfo = provider(
def _copy_script(ctx, script):
dest = ctx.actions.declare_file(path_join(ctx.label.name, "sbin", script.basename))
args = ctx.actions.args()
args.add_all([script, dest])
ctx.actions.run(
inputs = [script],
outputs = [dest],
executable = "cp",
arguments = [args],
ctx.actions.expand_template(
template = script,
output = dest,
substitutions = {},
)
return dest
@ -30,11 +28,11 @@ def link_escript(ctx, escript):
return s
def _plugins_dir_links(ctx, plugin):
lib_info = plugin[ErlangLibInfo]
lib_info = plugin[ErlangAppInfo]
plugin_path = path_join(
ctx.label.name,
"plugins",
lib_info.lib_name,
lib_info.app_name,
)
links = []
@ -73,7 +71,7 @@ def _plugins_dir_links(ctx, plugin):
def unique_versions(plugins):
erlang_versions = []
for plugin in plugins:
erlang_version = plugin[ErlangLibInfo].erlang_version
erlang_version = plugin[ErlangAppInfo].erlang_version
if not erlang_version in erlang_versions:
erlang_versions.append(erlang_version)
return erlang_versions
@ -88,7 +86,11 @@ def _impl(ctx):
if len(erlang_versions) > 1:
fail("plugins do not have a unified erlang version", erlang_versions)
scripts = [_copy_script(ctx, script) for script in ctx.files._scripts]
if not ctx.attr.is_windows:
source_scripts = ctx.files._scripts
else:
source_scripts = ctx.files._scripts_windows
scripts = [_copy_script(ctx, script) for script in source_scripts]
rabbitmq_ctl_copies = [
"rabbitmq-diagnostics",
@ -105,10 +107,10 @@ def _impl(ctx):
rabbitmqctl = None
for script in scripts:
if script.basename == "rabbitmqctl":
if script.basename == ("rabbitmqctl" if not ctx.attr.is_windows else "rabbitmqctl.bat"):
rabbitmqctl = script
if rabbitmqctl == None:
fail("could not find rabbitmqct among", scripts)
fail("could not find rabbitmqctl among", scripts)
return [
RabbitmqHomeInfo(
@ -132,15 +134,37 @@ RABBITMQ_HOME_ATTRS = {
],
allow_files = True,
),
"_scripts_windows": attr.label_list(
default = [
"//deps/rabbit:scripts/rabbitmq-defaults.bat",
"//deps/rabbit:scripts/rabbitmq-diagnostics.bat",
"//deps/rabbit:scripts/rabbitmq-env.bat",
"//deps/rabbit:scripts/rabbitmq-plugins.bat",
"//deps/rabbit:scripts/rabbitmq-queues.bat",
"//deps/rabbit:scripts/rabbitmq-server.bat",
"//deps/rabbit:scripts/rabbitmqctl.bat",
],
allow_files = True,
),
"_rabbitmqctl_escript": attr.label(default = "//deps/rabbitmq_cli:rabbitmqctl"),
"plugins": attr.label_list(providers = [ErlangLibInfo]),
"is_windows": attr.bool(mandatory = True),
"plugins": attr.label_list(providers = [ErlangAppInfo]),
}
rabbitmq_home = rule(
rabbitmq_home_private = rule(
implementation = _impl,
attrs = RABBITMQ_HOME_ATTRS,
)
def rabbitmq_home(**kwargs):
rabbitmq_home_private(
is_windows = select({
"@bazel_tools//src/conditions:host_windows": True,
"//conditions:default": False,
}),
**kwargs
)
def _dirname(p):
return p.rpartition("/")[0]

View File

@ -1,59 +1,114 @@
load("@bazel-erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider")
load("@bazel-erlang//:bazel_erlang_lib.bzl", "path_join")
load("@bazel-erlang//:ct.bzl", "sanitize_sname")
load("@rules_erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider")
load("@rules_erlang//:util.bzl", "path_join", "windows_path")
load("@rules_erlang//:ct.bzl", "sanitize_sname")
load(":rabbitmq_home.bzl", "RabbitmqHomeInfo", "rabbitmq_home_short_path")
def _impl(ctx):
rabbitmq_home_path = rabbitmq_home_short_path(ctx.attr.home)
# the rabbitmq-run.sh template only allows a single erl_libs currently
erl_libs = [path_join(rabbitmq_home_path, "plugins")]
erl_libs = ctx.configuration.host_path_separator.join([
path_join(rabbitmq_home_path, "plugins"),
])
sname = sanitize_sname("sbb-" + ctx.attr.name)
if not ctx.attr.is_windows:
output = ctx.actions.declare_file(ctx.label.name)
ctx.actions.expand_template(
template = ctx.file._template,
output = ctx.outputs.executable,
output = output,
substitutions = {
"{RABBITMQ_HOME}": rabbitmq_home_path,
"{ERL_LIBS}": ":".join(erl_libs),
"{ERL_LIBS}": erl_libs,
"{ERLANG_HOME}": ctx.attr._erlang_home[ErlangHomeProvider].path,
"{SNAME}": sanitize_sname("sbb-" + ctx.attr.name),
"{SNAME}": sname,
},
is_executable = True,
)
else:
output = ctx.actions.declare_file(ctx.label.name + ".bat")
ctx.actions.expand_template(
template = ctx.file._windows_template,
output = output,
substitutions = {
"{RABBITMQ_HOME}": windows_path(rabbitmq_home_path),
"{ERL_LIBS}": erl_libs,
"{ERLANG_HOME}": windows_path(ctx.attr._erlang_home[ErlangHomeProvider].path),
"{SNAME}": sname,
},
is_executable = True,
)
runfiles = ctx.runfiles(ctx.attr.home[DefaultInfo].files.to_list())
return [DefaultInfo(runfiles = runfiles)]
return [DefaultInfo(
runfiles = runfiles,
executable = output,
)]
rabbitmq_run = rule(
rabbitmq_run_private = rule(
implementation = _impl,
attrs = {
"_template": attr.label(
default = Label("//:scripts/bazel/rabbitmq-run.sh"),
allow_single_file = True,
),
"_erlang_home": attr.label(default = "@bazel-erlang//:erlang_home"),
"_windows_template": attr.label(
default = Label("//:scripts/bazel/rabbitmq-run.bat"),
allow_single_file = True,
),
"_erlang_home": attr.label(default = Label("@rules_erlang//:erlang_home")),
"is_windows": attr.bool(mandatory = True),
"home": attr.label(providers = [RabbitmqHomeInfo]),
},
executable = True,
)
def rabbitmq_run(**kwargs):
rabbitmq_run_private(
is_windows = select({
"@bazel_tools//src/conditions:host_windows": True,
"//conditions:default": False,
}),
**kwargs
)
def _run_command_impl(ctx):
ctx.actions.write(
output = ctx.outputs.executable,
content = "exec ./{} {} $@".format(
if not ctx.attr.is_windows:
output = ctx.actions.declare_file(ctx.label.name)
script = "exec ./{} {} $@".format(
ctx.attr.rabbitmq_run[DefaultInfo].files_to_run.executable.short_path,
ctx.attr.subcommand,
),
)
else:
output = ctx.actions.declare_file(ctx.label.name + ".bat")
script = """@echo off
call {} {} %*
if ERRORLEVEL 1 (
exit /B %ERRORLEVEL%
)
EXIT /B 0
""".format(
ctx.attr.rabbitmq_run[DefaultInfo].files_to_run.executable.short_path,
ctx.attr.subcommand,
)
ctx.actions.write(
output = output,
content = script,
is_executable = True,
)
return [DefaultInfo(
runfiles = ctx.attr.rabbitmq_run[DefaultInfo].default_runfiles,
executable = output,
)]
rabbitmq_run_command = rule(
rabbitmq_run_command_private = rule(
implementation = _run_command_impl,
attrs = {
"is_windows": attr.bool(mandatory = True),
"rabbitmq_run": attr.label(
executable = True,
cfg = "target",
@ -66,3 +121,12 @@ rabbitmq_run_command = rule(
},
executable = True,
)
def rabbitmq_run_command(**kwargs):
rabbitmq_run_command_private(
is_windows = select({
"@bazel_tools//src/conditions:host_windows": True,
"//conditions:default": False,
}),
**kwargs
)

View File

@ -1,4 +1,4 @@
load("@bazel-erlang//:erlang_home.bzl", "ErlangVersionProvider")
load("@rules_erlang//:erlang_home.bzl", "ErlangVersionProvider")
load(":rabbitmq_home.bzl", "RabbitmqHomeInfo", "rabbitmq_home_short_path")
def _impl(ctx):
@ -25,7 +25,7 @@ def _impl(ctx):
rabbitmqctl = rule(
implementation = _impl,
attrs = {
"_erlang_version": attr.label(default = "@bazel-erlang//:erlang_version"),
"_erlang_version": attr.label(default = Label("@rules_erlang//:erlang_version")),
"home": attr.label(providers = [RabbitmqHomeInfo]),
},
executable = True,

View File

@ -0,0 +1,156 @@
@echo off
setLocal enableDelayedExpansion
setlocal enableextensions
set ORIGINAL_ARGS=%*
if not defined TEST_SRCDIR (
set BASE_DIR=%cd%
) else (
set BASE_DIR=%TEST_SRCDIR%/%TEST_WORKSPACE%
set BASE_DIR=%BASE_DIR:/=\\%
)
if "%1" == "-C" (
cd %2
shift 2
)
:loop-args
if "%1" == "" goto :loop-args-end
if "%1" == "run-broker" (
set CMD=%1
shift
goto :loop-args
)
if "%1" == "start-background-broker" (
set CMD=%1
shift
goto :loop-args
)
if "%1" == "stop-node" (
set CMD=%1
shift
goto :loop-args
)
if "%1" == "set-resource-alarm" (
set CMD=%1
shift
goto :loop-args
)
if "%1" == "clean-resource-alarm" (
set CMD=%1
shift
goto :loop-args
)
for /F "tokens=1,3 delims=. " %%a in ("%1") do (
set %%a=%%b
)
shift
goto :loop-args
:loop-args-end
set DEFAULT_PLUGINS_DIR=%BASE_DIR%\{RABBITMQ_HOME}\plugins
if defined EXTRA_PLUGINS_DIR (
set DEFAULT_PLUGINS_DIR=%DEFAULT_PLUGINS_DIR%;%EXTRA_PLUGINS_DIR%
)
if not defined TEST_TMPDIR (
set TEST_TMPDIR=%TEMP%\rabbitmq-test-instances
)
set RABBITMQ_SCRIPTS_DIR=%BASE_DIR%\{RABBITMQ_HOME}\sbin
set RABBITMQ_PLUGINS=%RABBITMQ_SCRIPTS_DIR%\rabbitmq-plugins.bat
set RABBITMQ_SERVER=%RABBITMQ_SCRIPTS_DIR%\rabbitmq-server.bat
set RABBITMQCTL=%RABBITMQ_SCRIPTS_DIR%\rabbitmqctl.bat
set HOSTNAME=%COMPUTERNAME%
if not defined RABBITMQ_NODENAME set RABBITMQ_NODENAME=rabbit@%HOSTNAME%
if not defined RABBITMQ_NODENAME_FOR_PATHS set RABBITMQ_NODENAME_FOR_PATHS=%RABBITMQ_NODENAME%
set NODE_TMPDIR=%TEST_TMPDIR%\%RABBITMQ_NODENAME_FOR_PATHS%
set RABBITMQ_BASE=%NODE_TMPDIR%
set RABBITMQ_PID_FILE=%NODE_TMPDIR%\%{RABBITMQ_NODENAME_FOR_PATHS%.pid
set RABBITMQ_LOG_BASE=%NODE_TMPDIR%\log
set RABBITMQ_MNESIA_BASE=%NODE_TMPDIR%\mnesia
set RABBITMQ_MNESIA_DIR=%RABBITMQ_MNESIA_BASE%\%RABBITMQ_NODENAME_FOR_PATHS%
set RABBITMQ_QUORUM_DIR=%RABBITMQ_MNESIA_DIR%\quorum
set RABBITMQ_STREAM_DIR=%RABBITMQ_MNESIA_DIR%\stream
if not defined RABBITMQ_PLUGINS_DIR set RABBITMQ_PLUGINS_DIR=%DEFAULT_PLUGINS_DIR%
set RABBITMQ_PLUGINS_EXPAND_DIR=%NODE_TMPDIR%\plugins
set RABBITMQ_FEATURE_FLAGS_FILE=%NODE_TMPDIR%\feature_flags
set RABBITMQ_ENABLED_PLUGINS_FILE=%NODE_TMPDIR%\enabled_plugins
if not defined RABBITMQ_SERVER_START_ARGS (
set RABBITMQ_SERVER_START_ARGS=-ra wal_sync_method sync
)
if not defined RABBITMQ_LOG (
set RABBITMQ_LOG=debug,+color
)
if defined LEAVE_PLUGINS_DISABLED (
set RABBITMQ_ENABLED_PLUGINS=
) else (
set RABBITMQ_ENABLED_PLUGINS=ALL
)
if not exist "%TEST_TMPDIR%" mkdir %TEST_TMPDIR%
if not exist "%RABBITMQ_LOG_BASE%" mkdir %RABBITMQ_LOG_BASE%
if not exist "%RABBITMQ_MNESIA_BASE%" mkdir %RABBITMQ_MNESIA_BASE%
if not exist "%RABBITMQ_PLUGINS_EXPAND_DIR%" mkdir %RABBITMQ_PLUGINS_EXPAND_DIR%
if "%CMD%" == "run-broker" (
set RABBITMQ_ALLOW_INPUT=true
set RABBITMQ_CONFIG_FILE=%TEST_TMPDIR%\test.config
> !RABBITMQ_CONFIG_FILE! (
@echo [
@echo {rabbit, [
@echo {loopback_users, []}
@echo ]},
@echo {rabbitmq_management, []},
@echo {rabbitmq_mqtt, []},
@echo {rabbitmq_stomp, []},
@echo {ra, [
@echo {data_dir, "!RABBITMQ_QUORUM_DIR:\=\\!"},
@echo {wal_sync_method, sync}
@echo ]},
@echo {osiris, [
@echo {data_dir, "!RABBITMQ_STREAM_DIR:\=\\!"}
@echo ]}
@echo ].
)
call %RABBITMQ_SCRIPTS_DIR%\rabbitmq-server.bat
if ERRORLEVEL 1 (
exit /B %ERRORLEVEL%
)
exit /B 0
)
if "%CMD%" == "start-background-broker" (
echo ERROR: not implemented by rabbitmq-run.bat
exit /b 1
)
if "%CMD%" == "stop-node" (
echo ERROR: not implemented by rabbitmq-run.bat
exit /b 1
)
if "%CMD%" == "set-resource-alarm" (
echo ERROR: not implemented by rabbitmq-run.bat
exit /b 1
)
if "%CMD%" == "clear-resource-alarm" (
echo ERROR: not implemented by rabbitmq-run.bat
exit /b 1
)
echo ERROR: unrecognized rabbitmq-run.bat args: "%ORIGINAL_ARGS%"
exit /b 1

View File

@ -1,4 +1,4 @@
load("@bazel-erlang//:erlang_home.bzl", "ErlangHomeProvider")
load("@rules_erlang//:erlang_home.bzl", "ErlangHomeProvider")
def _impl(ctx):
out = ctx.actions.declare_file(ctx.label.name)
@ -33,6 +33,6 @@ plt_path: bazel-bin/deps/rabbit/.base_plt.plt
erlang_ls_config = rule(
implementation = _impl,
attrs = {
"_erlang_home": attr.label(default = "@bazel-erlang//:erlang_home"),
"_erlang_home": attr.label(default = "@rules_erlang//:erlang_home"),
},
)

View File

@ -1,5 +1,5 @@
build --@bazel-erlang//:erlang_home=/Users/rabbitmq/kerl/24.0
build --@bazel-erlang//:erlang_version=24.0
build --@rules_erlang//:erlang_home=/Users/rabbitmq/kerl/24.0
build --@rules_erlang//:erlang_version=24.0
build --//:elixir_home=/Users/rabbitmq/.kiex/elixirs/elixir-1.12.0/lib/elixir
# rabbitmqctl wait shells out to 'ps', which is broken in the bazel macOS

View File

@ -1,18 +1,18 @@
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository", "new_git_repository")
load("@bazel-erlang//:github.bzl", "github_bazel_erlang_lib")
load("@bazel-erlang//:hex_archive.bzl", "hex_archive")
load("@bazel-erlang//:hex_pm.bzl", "hex_pm_bazel_erlang_lib")
load("@rules_erlang//:github.bzl", "github_erlang_app")
load("@rules_erlang//:hex_archive.bzl", "hex_archive")
load("@rules_erlang//:hex_pm.bzl", "hex_pm_erlang_app")
load("//:rabbitmq.bzl", "APP_VERSION")
def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"):
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "accept",
version = "0.3.5",
sha256 = "11b18c220bcc2eab63b5470c038ef10eb6783bcb1fcdb11aa4137defa5ac1bb8",
)
github_bazel_erlang_lib(
github_erlang_app(
name = "aten",
org = "rabbitmq",
sha256 = "f27453bfa270538e1b48a9111206847e19a5ad51b4ded4f03fcb0184fbb555be",
@ -20,7 +20,7 @@ def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"):
version = "0.5.7",
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "base64url",
version = "1.0.1",
sha256 = "f9b3add4731a02a9b0410398b475b33e7566a695365237a6bdee1bb447719f5c",
@ -33,7 +33,7 @@ def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"):
build_file = rabbitmq_workspace + "//:BUILD.bats",
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "cowboy",
first_srcs = [
"src/cowboy_stream.erl",
@ -43,18 +43,18 @@ def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"):
version = "2.8.0",
sha256 = "4643e4fba74ac96d4d152c75803de6fad0b3fa5df354c71afdd6cbeeb15fac8a",
deps = [
"@cowlib//:bazel_erlang_lib",
"@ranch//:bazel_erlang_lib",
"@cowlib//:erlang_app",
"@ranch//:erlang_app",
],
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "cowlib",
version = "2.9.1",
sha256 = "e4175dc240a70d996156160891e1c62238ede1729e45740bdd38064dad476170",
)
github_bazel_erlang_lib(
github_erlang_app(
repo = "credentials-obfuscation",
name = "credentials_obfuscation",
org = "rabbitmq",
@ -63,23 +63,23 @@ def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"):
version = "2.4.0",
)
github_bazel_erlang_lib(
github_erlang_app(
name = "ct_helper",
org = "extend",
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "cuttlefish",
version = "3.0.1",
sha256 = "3feff3ae4ed1f0ca6df87ac89235068fbee9242ee85d2ac17fb1b8ce0e30f1a6",
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "eetcd",
version = "0.3.3",
sha256 = "8fb280156ddd1b7b34d0f446c5711832385bff512c05378dcea8362f4f5060d6",
runtime_deps = [
"@gun//:bazel_erlang_lib",
"@gun//:erlang_app",
],
)
@ -87,9 +87,9 @@ def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"):
name = "emqttc",
urls = ["https://github.com/rabbitmq/emqttc/archive/remove-logging.zip"],
strip_prefix = "emqttc-remove-logging",
build_file_content = """load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib")
build_file_content = """load("@rules_erlang//:erlang_app.bzl", "erlang_app")
erlang_lib(
erlang_app(
app_name = "emqttc",
erlc_opts = [
"+warn_export_all",
@ -99,19 +99,19 @@ erlang_lib(
""",
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "enough",
version = "0.1.0",
sha256 = "0460c7abda5f5e0ea592b12bc6976b8a5c4b96e42f332059cd396525374bf9a1",
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "gen_batch_server",
version = "0.8.6",
sha256 = "b78679349168f27d7047f3283c9d766760b234d98c762aca9a1907f4ee3fd406",
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "gun",
version = "1.3.3",
sha256 = "3106ce167f9c9723f849e4fb54ea4a4d814e3996ae243a1c828b256e749041e0",
@ -119,7 +119,7 @@ erlang_lib(
"src/gun_content_handler.erl",
],
runtime_deps = [
"@cowlib//:bazel_erlang_lib",
"@cowlib//:erlang_app",
],
erlc_opts = [
"+debug_info",
@ -136,7 +136,7 @@ erlang_lib(
urls = ["https://github.com/rabbitmq/inet_tcp_proxy/archive/master.zip"],
)
github_bazel_erlang_lib(
github_erlang_app(
name = "jose",
repo = "erlang-jose",
org = "potatosalad",
@ -151,18 +151,18 @@ erlang_lib(
sha256 = "7816f39d00655f2605cfac180755e97e268dba86c2f71037998ff63792ca727b",
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "jsx",
version = "3.1.0",
sha256 = "0c5cc8fdc11b53cc25cf65ac6705ad39e54ecc56d1c22e4adb8f5a53fb9427f3",
)
github_bazel_erlang_lib(
github_erlang_app(
name = "meck",
org = "eproxus",
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "observer_cli",
version = "1.7.1",
sha256 = "4ccafaaa2ce01b85ddd14591f4d5f6731b4e13b610a70fb841f0701178478280",
@ -170,11 +170,11 @@ erlang_lib(
git_repository(
name = "osiris",
branch = "main",
branch = "use-rules_erlang",
remote = "https://github.com/rabbitmq/osiris.git",
)
github_bazel_erlang_lib(
github_erlang_app(
name = "prometheus",
repo = "prometheus.erl",
org = "deadtrickster",
@ -187,11 +187,11 @@ erlang_lib(
"src/prometheus_metric.erl",
],
deps = [
"@quantile_estimator//:bazel_erlang_lib",
"@quantile_estimator//:erlang_app",
],
)
github_bazel_erlang_lib(
github_erlang_app(
name = "proper",
first_srcs = [
"src/vararg.erl",
@ -200,7 +200,7 @@ erlang_lib(
org = "manopapad",
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "quantile_estimator",
version = "0.2.1",
erlc_opts = [
@ -211,7 +211,7 @@ erlang_lib(
git_repository(
name = "ra",
branch = "main",
branch = "use-rules_erlang",
remote = "https://github.com/rabbitmq/ra.git",
)
@ -222,19 +222,19 @@ erlang_lib(
build_file = rabbitmq_workspace + "//:BUILD.ranch",
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "recon",
version = "2.5.1",
sha256 = "5721c6b6d50122d8f68cccac712caa1231f97894bab779eff5ff0f886cb44648",
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "redbug",
version = "2.0.7",
sha256 = "3624feb7a4b78fd9ae0e66cc3158fe7422770ad6987a1ebf8df4d3303b1c4b0c",
)
github_bazel_erlang_lib(
github_erlang_app(
name = "seshat",
org = "rabbitmq",
ref = "main",
@ -245,13 +245,13 @@ erlang_lib(
],
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "stdout_formatter",
version = "0.2.4",
sha256 = "51f1df921b0477275ea712763042155dbc74acc75d9648dbd54985c45c913b29",
)
github_bazel_erlang_lib(
github_erlang_app(
name = "syslog",
org = "schlagert",
sha256 = "01c31c31d4d28e564da0660bdb69725ba37173fca5b3228829b8f3f416f9e486",
@ -262,18 +262,18 @@ erlang_lib(
],
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "sysmon_handler",
version = "1.3.0",
sha256 = "922cf0dd558b9fdb1326168373315b52ed6a790ba943f6dcbd9ee22a74cebdef",
)
hex_pm_bazel_erlang_lib(
hex_pm_erlang_app(
name = "systemd",
version = "0.6.1",
sha256 = "8ec5ed610a5507071cdb7423e663e2452a747a624bb8a58582acd9491ccad233",
deps = [
"@enough//:bazel_erlang_lib",
"@enough//:erlang_app",
],
)