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 --java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8
build:rbe --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 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 --//:elixir_home=/usr/local
build:rbe --spawn_strategy=remote 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 --platforms=@rbe_23//config:platform
build:rbe-23 --extra_execution_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 --config=rbe
build:rbe-24 --host_javabase=@rbe_24//java:jdk 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 --platforms=@rbe_24//config:platform
build:rbe-24 --extra_execution_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 # Try importing a user specific .bazelrc
# You can create your own by copying and editing the template-user.bazelrc template: # 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 --host_platform=//:erlang_git_platform
build:rbe-git --platforms=//:erlang_git_platform build:rbe-git --platforms=//:erlang_git_platform
build:rbe-git --extra_execution_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 --@rules_erlang//:erlang_home=/usr/local/lib/erlang
build:rbe-git --@bazel-erlang//:erlang_version=25 build:rbe-git --@rules_erlang//:erlang_version=25
EOF EOF
#! - name: Setup tmate session #! - name: Setup tmate session
#! uses: mxschmitt/action-tmate@v3 #! uses: mxschmitt/action-tmate@v3

View File

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

View File

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

View File

@ -1,6 +1,6 @@
load("@rules_pkg//:pkg.bzl", "pkg_tar") load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@bazel-erlang//:dialyze.bzl", "plt") load("@rules_erlang//:dialyze.bzl", "plt")
load("@bazel-erlang//:shell.bzl", "shell") load("@rules_erlang//:shell.bzl", "shell")
load("elixir_home.bzl", "elixir_home") load("elixir_home.bzl", "elixir_home")
load(":rabbitmq_home.bzl", "rabbitmq_home") load(":rabbitmq_home.bzl", "rabbitmq_home")
load(":rabbitmq_run.bzl", "rabbitmq_run", "rabbitmq_run_command") load(":rabbitmq_run.bzl", "rabbitmq_run", "rabbitmq_run_command")
@ -10,6 +10,7 @@ load(":dist.bzl", "collect_licenses", "versioned_rabbitmq_home")
exports_files([ exports_files([
"scripts/bazel/rabbitmq-run.sh", "scripts/bazel/rabbitmq-run.sh",
"scripts/bazel/rabbitmq-run.bat",
]) ])
config_setting( config_setting(
@ -52,30 +53,12 @@ rabbitmq_home(
plugins = all_plugins(rabbitmq_workspace = ""), 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( rabbitmq_run(
name = "rabbitmq-run", name = "rabbitmq-run",
home = ":broker-home", home = ":broker-home",
visibility = ["//visibility:public"], 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` # Allow us to `bazel run broker`
# for the equivalent of `make run-broker` # for the equivalent of `make run-broker`
rabbitmq_run_command( 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_name = "inet_tcp_proxy_dist",
app_version = "0.1.0", app_version = "0.1.0",
app_description = "Erlang distribution proxy to simulate network failures", 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", load("@rules_erlang//:app_file.bzl", "app_file")
"DEFAULT_ERLC_OPTS") 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 = [ FIRST_SRCS = [
"src/ranch_transport.erl", "src/ranch_transport.erl",
@ -36,8 +38,8 @@ app_file(
modules = [":first_beam_files", ":beam_files"], modules = [":first_beam_files", ":beam_files"],
) )
bazel_erlang_lib( erlang_app_info(
name = "bazel_erlang_lib", name = "erlang_app",
app_name = "ranch", app_name = "ranch",
app = ":app_file", app = ":app_file",
hdrs = glob(["include/**/*.hrl"]), 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_name = "trust_store_http",
app_description = "Trust store HTTP server", app_description = "Trust store HTTP server",
app_module = "trust_store_http_app", app_module = "trust_store_http_app",
@ -9,7 +9,7 @@ erlang_lib(
"ssl", "ssl",
], ],
deps = [ deps = [
"@cowboy//:bazel_erlang_lib", "@cowboy//:erlang_app",
"@jsx//:bazel_erlang_lib", "@jsx//:erlang_app",
], ],
) )

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref") load("@rules_erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze") load("@rules_erlang//:dialyze.bzl", "dialyze")
load( load(
"//:rabbitmq.bzl", "//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS", "RABBITMQ_DIALYZER_OPTS",
"assert_suites", "assert_suites",
"broker_for_integration_suites", "broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite", "rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite", "rabbitmq_suite",
) )
@ -25,16 +25,16 @@ BUILD_DEPS = [
] ]
DEPS = [ DEPS = [
"//deps/rabbit_common:bazel_erlang_lib", "//deps/rabbit_common:erlang_app",
"//deps/amqp_client:bazel_erlang_lib", "//deps/amqp_client:erlang_app",
"//deps/amqp10_common:bazel_erlang_lib", "//deps/amqp10_common:erlang_app",
] ]
RUNTIME_DEPS = [ RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib", "//deps/rabbit:erlang_app",
] ]
rabbitmq_lib( rabbitmq_app(
app_description = APP_DESCRIPTION, app_description = APP_DESCRIPTION,
app_env = APP_ENV, app_env = APP_ENV,
app_name = APP_NAME, app_name = APP_NAME,
@ -65,7 +65,7 @@ suites = [
name = "amqp10_client_SUITE", name = "amqp10_client_SUITE",
size = "medium", size = "medium",
runtime_deps = [ runtime_deps = [
"//deps/amqp10_client:bazel_erlang_lib", "//deps/amqp10_client:erlang_app",
], ],
), ),
rabbitmq_integration_suite( rabbitmq_integration_suite(
@ -73,7 +73,7 @@ suites = [
name = "command_SUITE", name = "command_SUITE",
size = "medium", size = "medium",
deps = [ deps = [
"//deps/amqp10_common:bazel_erlang_lib", "//deps/amqp10_common:erlang_app",
], ],
), ),
rabbitmq_integration_suite( rabbitmq_integration_suite(
@ -96,7 +96,7 @@ suites = [
name = "unit_SUITE", name = "unit_SUITE",
size = "small", size = "small",
deps = [ 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("@rules_erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze") load("@rules_erlang//:dialyze.bzl", "dialyze")
load( load(
"//:rabbitmq.bzl", "//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS", "RABBITMQ_DIALYZER_OPTS",
"assert_suites", "assert_suites",
"broker_for_integration_suites", "broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite", "rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite", "rabbitmq_suite",
) )
@ -25,18 +25,18 @@ APP_DESCRIPTION = "RabbitMQ Authentication Backend cache"
APP_MODULE = "rabbit_auth_backend_cache_app" APP_MODULE = "rabbit_auth_backend_cache_app"
DEPS = [ DEPS = [
"//deps/rabbit_common:bazel_erlang_lib", "//deps/rabbit_common:erlang_app",
] ]
RUNTIME_DEPS = [ RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib", "//deps/rabbit:erlang_app",
] ]
FIRST_SRCS = [ FIRST_SRCS = [
"src/rabbit_auth_cache.erl", "src/rabbit_auth_cache.erl",
] ]
rabbitmq_lib( rabbitmq_app(
app_description = APP_DESCRIPTION, app_description = APP_DESCRIPTION,
app_env = APP_ENV, app_env = APP_ENV,
app_module = APP_MODULE, app_module = APP_MODULE,
@ -70,7 +70,7 @@ suites = [
rabbitmq_suite( rabbitmq_suite(
name = "rabbit_auth_cache_SUITE", name = "rabbit_auth_cache_SUITE",
runtime_deps = [ 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("@rules_erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze", "plt") load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load( load(
"//:rabbitmq.bzl", "//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS", "RABBITMQ_DIALYZER_OPTS",
"assert_suites", "assert_suites",
"broker_for_integration_suites", "broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite", "rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite", "rabbitmq_suite",
) )
@ -29,15 +29,15 @@ EXTRA_APPS = [
] ]
DEPS = [ DEPS = [
"//deps/rabbit_common:bazel_erlang_lib", "//deps/rabbit_common:erlang_app",
] ]
RUNTIME_DEPS = [ RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib", "//deps/rabbit:erlang_app",
"//deps/amqp_client:bazel_erlang_lib", "//deps/amqp_client:erlang_app",
] ]
rabbitmq_lib( rabbitmq_app(
app_description = APP_DESCRIPTION, app_description = APP_DESCRIPTION,
app_env = APP_ENV, app_env = APP_ENV,
app_module = APP_MODULE, app_module = APP_MODULE,
@ -73,10 +73,10 @@ suites = [
"test/auth_http_mock.erl", "test/auth_http_mock.erl",
], ],
runtime_deps = [ runtime_deps = [
"@cowboy//:bazel_erlang_lib", "@cowboy//:erlang_app",
], ],
deps = [ deps = [
"//deps/rabbit_common:bazel_erlang_lib", "//deps/rabbit_common:erlang_app",
], ],
), ),
rabbitmq_integration_suite( rabbitmq_integration_suite(

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,5 +1,6 @@
load("@bazel-erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider") load("@rules_erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider")
load("@bazel-erlang//:bazel_erlang_lib.bzl", "ErlangLibInfo", "path_join") load("@rules_erlang//:erlang_app_info.bzl", "ErlangAppInfo")
load("@rules_erlang//:util.bzl", "path_join", "windows_path")
load("//:elixir_home.bzl", "ElixirHomeProvider") load("//:elixir_home.bzl", "ElixirHomeProvider")
def _impl(ctx): def _impl(ctx):
@ -9,6 +10,7 @@ def _impl(ctx):
ebin = ctx.actions.declare_directory(path_join(ctx.attr.name, "ebin")) ebin = ctx.actions.declare_directory(path_join(ctx.attr.name, "ebin"))
if not ctx.attr.is_windows:
ctx.actions.run( ctx.actions.run(
inputs = [], inputs = [],
outputs = [ebin], outputs = [ebin],
@ -19,14 +21,25 @@ def _impl(ctx):
ebin.dirname, 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 [ return [
DefaultInfo( DefaultInfo(
files = depset([ebin]), files = depset([ebin]),
runfiles = ctx.runfiles([ebin]), runfiles = ctx.runfiles([ebin]),
), ),
ErlangLibInfo( ErlangAppInfo(
lib_name = ctx.attr.name, app_name = ctx.attr.name,
erlang_version = erlang_version, erlang_version = erlang_version,
include = [], include = [],
beam = [ebin], beam = [ebin],
@ -35,11 +48,21 @@ def _impl(ctx):
), ),
] ]
elixir = rule( elixir_private = rule(
implementation = _impl, implementation = _impl,
attrs = { attrs = {
"_erlang_version": attr.label(default = "@bazel-erlang//:erlang_version"), "is_windows": attr.bool(mandatory = True),
"_erlang_home": attr.label(default = "@bazel-erlang//:erlang_home"), "_erlang_version": attr.label(default = Label("@rules_erlang//:erlang_version")),
"_elixir_home": attr.label(default = "//:elixir_home"), "_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( load(
"@bazel-erlang//:bazel_erlang_lib.bzl", "@rules_erlang//:erlang_app_info.bzl",
"BEGINS_WITH_FUN", "ErlangAppInfo",
"ErlangLibInfo",
"QUERY_ERL_VERSION",
"flat_deps", "flat_deps",
)
load(
"@rules_erlang//:util.bzl",
"BEGINS_WITH_FUN",
"QUERY_ERL_VERSION",
"path_join", "path_join",
) )
load("//:elixir_home.bzl", "ElixirHomeProvider") load("//:elixir_home.bzl", "ElixirHomeProvider")
MIX_DEPS_DIR = "mix_deps" MIX_DEPS_DIR = "deps"
def _impl(ctx): def _impl(ctx):
erlang_version = ctx.attr._erlang_version[ErlangVersionProvider].version erlang_version = ctx.attr._erlang_version[ErlangVersionProvider].version
@ -22,11 +25,11 @@ def _impl(ctx):
copy_compiled_deps_commands = [] copy_compiled_deps_commands = []
copy_compiled_deps_commands.append("mkdir ${{MIX_INVOCATION_DIR}}/{}".format(MIX_DEPS_DIR)) copy_compiled_deps_commands.append("mkdir ${{MIX_INVOCATION_DIR}}/{}".format(MIX_DEPS_DIR))
for dep in ctx.attr.deps: for dep in ctx.attr.deps:
lib_info = dep[ErlangLibInfo] lib_info = dep[ErlangAppInfo]
if lib_info.erlang_version != erlang_version: if lib_info.erlang_version != erlang_version:
fail("Mismatched erlang versions", erlang_version, lib_info.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( copy_compiled_deps_commands.append(
"mkdir {}".format(dest_dir), "mkdir {}".format(dest_dir),
) )
@ -57,49 +60,48 @@ def _impl(ctx):
if ctx.label.workspace_root != "": if ctx.label.workspace_root != "":
package_dir = path_join(ctx.label.workspace_root, package_dir) package_dir = path_join(ctx.label.workspace_root, package_dir)
script = """ script = """set -euo pipefail
set -euo pipefail
export LANG="en_US.UTF-8" export LANG="en_US.UTF-8"
export LC_ALL="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}/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}/include ${{MIX_INVOCATION_DIR}}/include # rabbitmq_cli's include directory is empty
cp -R ${{PWD}}/{package_dir}/lib ${{MIX_INVOCATION_DIR}}/lib cp -R ${{PWD}}/{package_dir}/lib ${{MIX_INVOCATION_DIR}}/lib
cp ${{PWD}}/{package_dir}/mix.exs ${{MIX_INVOCATION_DIR}}/mix.exs cp ${{PWD}}/{package_dir}/mix.exs ${{MIX_INVOCATION_DIR}}/mix.exs
{copy_compiled_deps_command} {copy_compiled_deps_command}
cd ${{MIX_INVOCATION_DIR}} cd ${{MIX_INVOCATION_DIR}}
export HOME=${{PWD}} export HOME=${{PWD}}
{begins_with_fun} {begins_with_fun}
V=$({query_erlang_version}) V=$("{erlang_home}"/bin/{query_erlang_version})
if ! beginswith "{erlang_version}" "$V"; then if ! beginswith "{erlang_version}" "$V"; then
echo "Erlang version mismatch (Expected {erlang_version}, found $V)" echo "Erlang version mismatch (Expected {erlang_version}, found $V)"
exit 1 exit 1
fi fi
export DEPS_DIR={mix_deps_dir} export DEPS_DIR={mix_deps_dir}
export ERL_COMPILER_OPTIONS=deterministic export ERL_COMPILER_OPTIONS=deterministic
mix local.hex --force "{elixir_home}"/bin/mix local.hex --force
mix local.rebar --force "{elixir_home}"/bin/mix local.rebar --force
mix make_all "{elixir_home}"/bin/mix make_all_in_src_archive
cd ${{OLDPWD}} cd ${{OLDPWD}}
cp ${{MIX_INVOCATION_DIR}}/escript/rabbitmqctl {escript_path} cp ${{MIX_INVOCATION_DIR}}/escript/rabbitmqctl {escript_path}
mkdir -p {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/ebin/* {ebin_dir}
mv ${{MIX_INVOCATION_DIR}}/_build/dev/lib/rabbitmqctl/consolidated/* {ebin_dir} mv ${{MIX_INVOCATION_DIR}}/_build/dev/lib/rabbitmqctl/consolidated/* {ebin_dir}
rm -dR ${{MIX_INVOCATION_DIR}} rm -dR ${{MIX_INVOCATION_DIR}}
mkdir ${{MIX_INVOCATION_DIR}} mkdir ${{MIX_INVOCATION_DIR}}
touch ${{MIX_INVOCATION_DIR}}/placeholder touch ${{MIX_INVOCATION_DIR}}/placeholder
""".format( """.format(
begins_with_fun = BEGINS_WITH_FUN, begins_with_fun = BEGINS_WITH_FUN,
query_erlang_version = QUERY_ERL_VERSION, query_erlang_version = QUERY_ERL_VERSION,
@ -108,7 +110,7 @@ def _impl(ctx):
elixir_home = elixir_home, elixir_home = elixir_home,
mix_invocation_dir = mix_invocation_dir.path, mix_invocation_dir = mix_invocation_dir.path,
package_dir = package_dir, 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, mix_deps_dir = MIX_DEPS_DIR,
escript_path = escript.path, escript_path = escript.path,
ebin_dir = ebin.path, ebin_dir = ebin.path,
@ -117,7 +119,7 @@ def _impl(ctx):
inputs = [] inputs = []
inputs.extend(ctx.files.srcs) inputs.extend(ctx.files.srcs)
for dep in ctx.attr.deps: for dep in ctx.attr.deps:
lib_info = dep[ErlangLibInfo] lib_info = dep[ErlangAppInfo]
inputs.extend(lib_info.include) inputs.extend(lib_info.include)
inputs.extend(lib_info.beam) inputs.extend(lib_info.beam)
@ -140,8 +142,8 @@ def _impl(ctx):
files = depset([ebin]), files = depset([ebin]),
runfiles = runfiles, runfiles = runfiles,
), ),
ErlangLibInfo( ErlangAppInfo(
lib_name = ctx.attr.name, app_name = ctx.attr.name,
erlang_version = erlang_version, erlang_version = erlang_version,
include = [], include = [],
beam = [ebin], beam = [ebin],
@ -150,14 +152,24 @@ def _impl(ctx):
), ),
] ]
rabbitmqctl = rule( rabbitmqctl_private = rule(
implementation = _impl, implementation = _impl,
attrs = { attrs = {
"is_windows": attr.bool(mandatory = True),
"srcs": attr.label_list(allow_files = True), "srcs": attr.label_list(allow_files = True),
"deps": attr.label_list(providers = [ErlangLibInfo]), "deps": attr.label_list(providers = [ErlangAppInfo]),
"_erlang_version": attr.label(default = "@bazel-erlang//:erlang_version"), "_erlang_version": attr.label(default = Label("@rules_erlang//:erlang_version")),
"_erlang_home": attr.label(default = "@bazel-erlang//:erlang_home"), "_erlang_home": attr.label(default = Label("@rules_erlang//:erlang_home")),
"_elixir_home": attr.label(default = "//:elixir_home"), "_elixir_home": attr.label(default = Label("//:elixir_home")),
}, },
executable = True, 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("@rules_erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider")
load("@bazel-erlang//:bazel_erlang_lib.bzl", "BEGINS_WITH_FUN", "ErlangLibInfo", "QUERY_ERL_VERSION", "path_join") load(
load("@bazel-erlang//:ct.bzl", "code_paths") "@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("//: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): def _impl(ctx):
erlang_version = ctx.attr._erlang_version[ErlangVersionProvider].version erlang_version = ctx.attr._erlang_version[ErlangVersionProvider].version
erlang_home = ctx.attr._erlang_home[ErlangHomeProvider].path erlang_home = ctx.attr._erlang_home[ErlangHomeProvider].path
elixir_home = ctx.attr._elixir_home[ElixirHomeProvider].path elixir_home = ctx.attr._elixir_home[ElixirHomeProvider].path
copy_compiled_deps_commands = [] erl_libs_files = erl_libs_contents(ctx, headers = True)
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)
dest_dir = path_join("${TEST_UNDECLARED_OUTPUTS_DIR}", MIX_DEPS_DIR, lib_info.lib_name) package_dir = path_join(ctx.label.workspace_root, ctx.label.package)
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),
),
)
erl_libs = ":".join( erl_libs_path = path_join(package_dir, ERL_LIBS_DIR)
[path_join("${TEST_SRCDIR}/${TEST_WORKSPACE}", d) for dep in ctx.attr.deps for d in _lib_dirs(dep)],
)
script = """ if not ctx.attr.is_windows:
set -euo pipefail output = ctx.actions.declare_file(ctx.label.name)
script = """set -euo pipefail
export LANG="en_US.UTF-8" export LANG="en_US.UTF-8"
export LC_ALL="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}/config ${{TEST_UNDECLARED_OUTPUTS_DIR}}
# ln -s ${{PWD}}/{package_dir}/include ${{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}/lib ${{TEST_UNDECLARED_OUTPUTS_DIR}}
ln -s ${{PWD}}/{package_dir}/test ${{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}/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=$("{erlang_home}"/bin/{query_erlang_version})
{begins_with_fun} if ! beginswith "{erlang_version}" "$V"; then
V=$({query_erlang_version})
if ! beginswith "{erlang_version}" "$V"; then
echo "Erlang version mismatch (Expected {erlang_version}, found $V)" echo "Erlang version mismatch (Expected {erlang_version}, found $V)"
exit 1 exit 1
fi fi
export DEPS_DIR={mix_deps_dir} export DEPS_DIR=$TEST_SRCDIR/$TEST_WORKSPACE/{erl_libs_path}
export ERL_COMPILER_OPTIONS=deterministic export ERL_COMPILER_OPTIONS=deterministic
mix local.hex --force export MIX_ENV=test mix dialyzer
mix local.rebar --force "{elixir_home}"/bin/mix local.hex --force
mix make_deps "{elixir_home}"/bin/mix local.rebar --force
"{elixir_home}"/bin/mix make_all
# due to https://github.com/elixir-lang/elixir/issues/7699 we # due to https://github.com/elixir-lang/elixir/issues/7699 we
# "run" the tests, but skip them all, in order to trigger # "run" the tests, but skip them all, in order to trigger
# compilation of all *_test.exs files before we actually run them # compilation of all *_test.exs files before we actually run them
mix test --exclude test "{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 # we need a running broker with certain plugins for this to pass
trap 'catch $?' EXIT trap 'catch $?' EXIT
catch() {{ catch() {{
pid=$(cat ${{TEST_TMPDIR}}/*/*.pid) pid=$(cat ${{TEST_TMPDIR}}/*/*.pid)
kill -TERM "${{pid}}" kill -TERM "${{pid}}"
}} }}
cd ${{INITIAL_DIR}} cd ${{INITIAL_DIR}}
./{rabbitmq_run_cmd} start-background-broker ./{rabbitmq_run_cmd} start-background-broker
cd ${{TEST_UNDECLARED_OUTPUTS_DIR}} cd ${{TEST_UNDECLARED_OUTPUTS_DIR}}
# The test cases will need to be able to load code from the deps # The test cases will need to be able to load code from the deps
# directly, so we set ERL_LIBS # directly, so we set ERL_LIBS
export ERL_LIBS={erl_libs} export ERL_LIBS=$DEPS_DIR
# run the actual tests # run the actual tests
mix test --trace --max-failures 1 "{elixir_home}"/bin/mix test --trace --max-failures 1
""".format( """.format(
begins_with_fun = BEGINS_WITH_FUN, begins_with_fun = BEGINS_WITH_FUN,
query_erlang_version = QUERY_ERL_VERSION, query_erlang_version = QUERY_ERL_VERSION,
erlang_version = erlang_version, erlang_version = erlang_version,
erlang_home = erlang_home, erlang_home = erlang_home,
elixir_home = elixir_home, elixir_home = elixir_home,
package_dir = ctx.label.package, package_dir = package_dir,
copy_compiled_deps_command = " && ".join(copy_compiled_deps_commands), erl_libs_path = erl_libs_path,
mix_deps_dir = MIX_DEPS_DIR,
erl_libs = erl_libs,
rabbitmq_run_cmd = ctx.attr.rabbitmq_run[DefaultInfo].files_to_run.executable.short_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( ctx.actions.write(
output = ctx.outputs.executable, output = output,
content = script, content = script,
) )
runfiles = ctx.runfiles(ctx.files.srcs) runfiles = ctx.runfiles(
runfiles = runfiles.merge(ctx.runfiles(ctx.files.data)) files = ctx.files.srcs + ctx.files.data,
transitive_files = depset(erl_libs_files),
)
for dep in ctx.attr.deps: 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.runfiles(lib_info.include + lib_info.beam))
runfiles = runfiles.merge(ctx.attr.rabbitmq_run[DefaultInfo].default_runfiles) 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, implementation = _impl,
attrs = { attrs = {
"is_windows": attr.bool(mandatory = True),
"srcs": attr.label_list(allow_files = [".ex", ".exs"]), "srcs": attr.label_list(allow_files = [".ex", ".exs"]),
"data": attr.label_list(allow_files = True), "data": attr.label_list(allow_files = True),
"deps": attr.label_list(providers = [ErlangLibInfo]), "deps": attr.label_list(providers = [ErlangAppInfo]),
"rabbitmq_run": attr.label( "rabbitmq_run": attr.label(
executable = True, executable = True,
cfg = "target", cfg = "target",
), ),
"_erlang_version": attr.label(default = "@bazel-erlang//:erlang_version"), "_erlang_version": attr.label(default = Label("@rules_erlang//:erlang_version")),
"_erlang_home": attr.label(default = "@bazel-erlang//:erlang_home"), "_erlang_home": attr.label(default = Label("@rules_erlang//:erlang_home")),
"_elixir_home": attr.label(default = "//:elixir_home"), "_elixir_home": attr.label(default = Label("//:elixir_home")),
}, },
test = True, 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("@rules_erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze") load("@rules_erlang//:dialyze.bzl", "dialyze")
load( load(
"//:rabbitmq.bzl", "//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS", "RABBITMQ_DIALYZER_OPTS",
"assert_suites", "assert_suites",
"broker_for_integration_suites", "broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite", "rabbitmq_integration_suite",
"rabbitmq_lib",
) )
APP_NAME = "rabbitmq_consistent_hash_exchange" APP_NAME = "rabbitmq_consistent_hash_exchange"
@ -18,14 +18,14 @@ BUILD_DEPS = [
] ]
DEPS = [ DEPS = [
"//deps/rabbit_common:bazel_erlang_lib", "//deps/rabbit_common:erlang_app",
] ]
RUNTIME_DEPS = [ RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib", "//deps/rabbit:erlang_app",
] ]
rabbitmq_lib( rabbitmq_app(
app_description = APP_DESCRIPTION, app_description = APP_DESCRIPTION,
app_name = APP_NAME, app_name = APP_NAME,
build_deps = BUILD_DEPS, 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_name = "rabbitmq_ct_client_helpers",
app_version = "master", app_version = "master",
deps = [ deps = [
"//deps/amqp_client:bazel_erlang_lib", "//deps/amqp_client:erlang_app",
"//deps/rabbit_common:bazel_erlang_lib", "//deps/rabbit_common:erlang_app",
"//deps/rabbitmq_ct_helpers:bazel_erlang_lib", "//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_name = "rabbitmq_ct_helpers",
app_version = "master", app_version = "master",
extra_priv = [ extra_priv = [
@ -8,7 +8,7 @@ erlang_lib(
"tools/tls-certs/openssl.cnf.in", "tools/tls-certs/openssl.cnf.in",
], ],
deps = [ deps = [
"//deps/rabbit_common:bazel_erlang_lib", "//deps/rabbit_common:erlang_app",
"@proper//:bazel_erlang_lib", "@proper//:erlang_app",
], ],
) )

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref") load("@rules_erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze") load("@rules_erlang//:dialyze.bzl", "dialyze")
load( load(
"//:rabbitmq.bzl", "//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS", "RABBITMQ_DIALYZER_OPTS",
"assert_suites", "assert_suites",
"broker_for_integration_suites", "broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite", "rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite", "rabbitmq_suite",
) )
@ -15,11 +15,11 @@ APP_NAME = "rabbitmq_event_exchange"
APP_DESCRIPTION = "Event Exchange Type" APP_DESCRIPTION = "Event Exchange Type"
DEPS = [ DEPS = [
"//deps/rabbit_common:bazel_erlang_lib", "//deps/rabbit_common:erlang_app",
"//deps/rabbit:bazel_erlang_lib", "//deps/rabbit:erlang_app",
] ]
rabbitmq_lib( rabbitmq_app(
app_description = APP_DESCRIPTION, app_description = APP_DESCRIPTION,
app_name = APP_NAME, app_name = APP_NAME,
deps = DEPS, deps = DEPS,
@ -49,7 +49,7 @@ suites = [
rabbitmq_suite( rabbitmq_suite(
name = "unit_SUITE", name = "unit_SUITE",
runtime_deps = [ 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("@rules_erlang//:erlc.bzl", "erlc")
load("@bazel-erlang//:xref.bzl", "xref") load("@rules_erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze") load("@rules_erlang//:dialyze.bzl", "dialyze")
load( load(
"//:rabbitmq.bzl", "//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS", "RABBITMQ_DIALYZER_OPTS",
"RABBITMQ_TEST_ERLC_OPTS", "RABBITMQ_TEST_ERLC_OPTS",
"assert_suites", "assert_suites",
"broker_for_integration_suites", "broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite", "rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite", "rabbitmq_suite",
) )
@ -28,12 +28,12 @@ BUILD_DEPS = [
] ]
DEPS = [ DEPS = [
"//deps/amqp_client:bazel_erlang_lib", "//deps/amqp_client:erlang_app",
"//deps/rabbit_common:bazel_erlang_lib", "//deps/rabbit_common:erlang_app",
"//deps/rabbit:bazel_erlang_lib", "//deps/rabbit:erlang_app",
] ]
rabbitmq_lib( rabbitmq_app(
app_description = APP_DESCRIPTION, app_description = APP_DESCRIPTION,
app_env = APP_ENV, app_env = APP_ENV,
app_module = APP_MODULE, app_module = APP_MODULE,
@ -65,9 +65,9 @@ erlc(
dest = "test", dest = "test",
erlc_opts = RABBITMQ_TEST_ERLC_OPTS, erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
deps = [ deps = [
":test_bazel_erlang_lib", ":test_erlang_app",
"//deps/amqp_client:bazel_erlang_lib", "//deps/amqp_client:erlang_app",
"//deps/rabbit_common:bazel_erlang_lib", "//deps/rabbit_common:erlang_app",
], ],
) )
@ -123,8 +123,8 @@ suites = [
rabbitmq_suite( rabbitmq_suite(
name = "unit_SUITE", name = "unit_SUITE",
deps = [ deps = [
"//deps/amqp_client:bazel_erlang_lib", "//deps/amqp_client:erlang_app",
"//deps/rabbit_common:bazel_erlang_lib", "//deps/rabbit_common:erlang_app",
], ],
), ),
] ]

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref") load("@rules_erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze") load("@rules_erlang//:dialyze.bzl", "dialyze")
load( load(
"//:rabbitmq.bzl", "//:rabbitmq.bzl",
"RABBITMQ_DIALYZER_OPTS", "RABBITMQ_DIALYZER_OPTS",
"assert_suites", "assert_suites",
"broker_for_integration_suites", "broker_for_integration_suites",
"rabbitmq_app",
"rabbitmq_integration_suite", "rabbitmq_integration_suite",
"rabbitmq_lib",
) )
APP_NAME = "rabbitmq_sharding" APP_NAME = "rabbitmq_sharding"
@ -14,11 +14,11 @@ APP_NAME = "rabbitmq_sharding"
APP_DESCRIPTION = "RabbitMQ Sharding Plugin" APP_DESCRIPTION = "RabbitMQ Sharding Plugin"
DEPS = [ DEPS = [
"//deps/rabbit:bazel_erlang_lib", "//deps/rabbit:erlang_app",
"//deps/rabbit_common:bazel_erlang_lib", "//deps/rabbit_common:erlang_app",
] ]
rabbitmq_lib( rabbitmq_app(
app_description = APP_DESCRIPTION, app_description = APP_DESCRIPTION,
app_name = APP_NAME, app_name = APP_NAME,
deps = DEPS, deps = DEPS,
@ -45,7 +45,7 @@ suites = [
PACKAGE, PACKAGE,
name = "rabbit_sharding_SUITE", name = "rabbit_sharding_SUITE",
deps = [ 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("@rules_erlang//:erlc.bzl", "erlc")
load("@bazel-erlang//:xref.bzl", "xref") load("@rules_erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze") load("@rules_erlang//:dialyze.bzl", "dialyze")
load("//:rabbitmq_home.bzl", "rabbitmq_home") load("//:rabbitmq_home.bzl", "rabbitmq_home")
load("//:rabbitmq_run.bzl", "rabbitmq_run") load("//:rabbitmq_run.bzl", "rabbitmq_run")
load( load(
@ -8,8 +8,8 @@ load(
"RABBITMQ_DIALYZER_OPTS", "RABBITMQ_DIALYZER_OPTS",
"RABBITMQ_TEST_ERLC_OPTS", "RABBITMQ_TEST_ERLC_OPTS",
"assert_suites", "assert_suites",
"rabbitmq_app",
"rabbitmq_integration_suite", "rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite", "rabbitmq_suite",
) )
@ -38,16 +38,16 @@ BUILD_DEPS = [
] ]
DEPS = [ DEPS = [
"//deps/amqp_client:bazel_erlang_lib", "//deps/amqp_client:erlang_app",
"//deps/rabbit_common:bazel_erlang_lib", "//deps/rabbit_common:erlang_app",
] ]
RUNTIME_DEPS = [ RUNTIME_DEPS = [
"//deps/amqp10_client:bazel_erlang_lib", "//deps/amqp10_client:erlang_app",
"//deps/rabbit:bazel_erlang_lib", "//deps/rabbit:erlang_app",
] ]
rabbitmq_lib( rabbitmq_app(
app_description = APP_DESCRIPTION, app_description = APP_DESCRIPTION,
app_env = APP_ENV, app_env = APP_ENV,
app_module = APP_MODULE, app_module = APP_MODULE,
@ -72,9 +72,9 @@ dialyze(
rabbitmq_home( rabbitmq_home(
name = "broker-for-tests-home", name = "broker-for-tests-home",
plugins = [ plugins = [
"//deps/rabbit:bazel_erlang_lib", "//deps/rabbit:erlang_app",
"//deps/rabbitmq_amqp1_0:bazel_erlang_lib", "//deps/rabbitmq_amqp1_0:erlang_app",
":bazel_erlang_lib", ":erlang_app",
], ],
) )
@ -108,10 +108,10 @@ suites = [
name = "amqp10_shovel_SUITE", name = "amqp10_shovel_SUITE",
size = "small", size = "small",
runtime_deps = [ runtime_deps = [
"@meck//:bazel_erlang_lib", "@meck//:erlang_app",
], ],
deps = [ deps = [
"//deps/amqp10_common:bazel_erlang_lib", "//deps/amqp10_common:erlang_app",
], ],
), ),
rabbitmq_integration_suite( rabbitmq_integration_suite(
@ -145,7 +145,7 @@ suites = [
name = "parameters_SUITE", name = "parameters_SUITE",
size = "medium", size = "medium",
deps = [ deps = [
"//deps/rabbit_common:bazel_erlang_lib", "//deps/rabbit_common:erlang_app",
], ],
), ),
rabbitmq_integration_suite( rabbitmq_integration_suite(

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,7 @@
load("@bazel-erlang//:erlang_home.bzl", "ErlangHomeProvider") load("@rules_erlang//:erlang_home.bzl", "ErlangHomeProvider")
load("@bazel-erlang//:bazel_erlang_lib.bzl", "ErlangLibInfo", "flat_deps", "path_join") load("@rules_erlang//:erlang_app_info.bzl", "ErlangAppInfo", "flat_deps")
load("@bazel-erlang//:ct.bzl", "additional_file_dest_relative_path") load("@rules_erlang//:util.bzl", "path_join")
load("@rules_erlang//:ct.bzl", "additional_file_dest_relative_path")
load( load(
":rabbitmq_home.bzl", ":rabbitmq_home.bzl",
"RABBITMQ_HOME_ATTRS", "RABBITMQ_HOME_ATTRS",
@ -12,7 +13,7 @@ load(
def _collect_licenses_impl(ctx): def _collect_licenses_impl(ctx):
srcs = ctx.files.srcs + flatten([ srcs = ctx.files.srcs + flatten([
d[ErlangLibInfo].license_files d[ErlangAppInfo].license_files
for d in flat_deps(ctx.attr.deps) for d in flat_deps(ctx.attr.deps)
]) ])
@ -42,7 +43,7 @@ collect_licenses = rule(
implementation = _collect_licenses_impl, implementation = _collect_licenses_impl,
attrs = { attrs = {
"srcs": attr.label_list(allow_files = True), "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", ""] commands = ["set -euo pipefail", ""]
for plugin in plugins: for plugin in plugins:
lib_info = plugin[ErlangLibInfo] lib_info = plugin[ErlangAppInfo]
app_file = _app_file(lib_info) app_file = _app_file(lib_info)
extract_version = _extract_version(app_file.path) 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("PLUGIN_VERSION=$({erlang_home}/bin/{extract_version})".format(erlang_home = erlang_home, extract_version = extract_version))
commands.append( commands.append(
"echo \"Assembling {lib_name}-$PLUGIN_VERSION...\"".format( "echo \"Assembling {lib_name}-$PLUGIN_VERSION...\"".format(
lib_name = lib_info.lib_name, lib_name = lib_info.app_name,
), ),
) )
commands.append( commands.append(
"mkdir -p {plugins_dir}/{lib_name}-$PLUGIN_VERSION/include".format( "mkdir -p {plugins_dir}/{lib_name}-$PLUGIN_VERSION/include".format(
plugins_dir = plugins_dir.path, plugins_dir = plugins_dir.path,
lib_name = lib_info.lib_name, lib_name = lib_info.app_name,
), ),
) )
for f in lib_info.include: 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( "cp {src} {plugins_dir}/{lib_name}-$PLUGIN_VERSION/include/{dest}".format(
src = f.path, src = f.path,
plugins_dir = plugins_dir.path, plugins_dir = plugins_dir.path,
lib_name = lib_info.lib_name, lib_name = lib_info.app_name,
dest = f.basename, dest = f.basename,
), ),
) )
@ -107,18 +108,18 @@ def _plugins_dir(ctx, plugins):
commands.append( commands.append(
"mkdir -p {plugins_dir}/{lib_name}-$PLUGIN_VERSION/ebin".format( "mkdir -p {plugins_dir}/{lib_name}-$PLUGIN_VERSION/ebin".format(
plugins_dir = plugins_dir.path, plugins_dir = plugins_dir.path,
lib_name = lib_info.lib_name, lib_name = lib_info.app_name,
), ),
) )
for f in lib_info.beam: for f in lib_info.beam:
if f.is_directory: if f.is_directory:
if f.basename != "ebin": 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( commands.append(
"cp -R {src} {plugins_dir}/{lib_name}-$PLUGIN_VERSION".format( "cp -R {src} {plugins_dir}/{lib_name}-$PLUGIN_VERSION".format(
src = f.path, src = f.path,
plugins_dir = plugins_dir.path, plugins_dir = plugins_dir.path,
lib_name = lib_info.lib_name, lib_name = lib_info.app_name,
), ),
) )
else: else:
@ -126,7 +127,7 @@ def _plugins_dir(ctx, plugins):
"cp {src} {plugins_dir}/{lib_name}-$PLUGIN_VERSION/ebin/{dest}".format( "cp {src} {plugins_dir}/{lib_name}-$PLUGIN_VERSION/ebin/{dest}".format(
src = f.path, src = f.path,
plugins_dir = plugins_dir.path, plugins_dir = plugins_dir.path,
lib_name = lib_info.lib_name, lib_name = lib_info.app_name,
dest = f.basename, 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( "mkdir -p $(dirname {plugins_dir}/{lib_name}-$PLUGIN_VERSION/{dest}) && cp {src} {plugins_dir}/{lib_name}-$PLUGIN_VERSION/{dest}".format(
src = f.path, src = f.path,
plugins_dir = plugins_dir.path, plugins_dir = plugins_dir.path,
lib_name = lib_info.lib_name, lib_name = lib_info.app_name,
dest = p, 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, implementation = _versioned_rabbitmq_home_impl,
attrs = dict(RABBITMQ_HOME_ATTRS.items() + { 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()), }.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 endif
define USER_BAZELRC define USER_BAZELRC
build --@bazel-erlang//:erlang_home=$(shell dirname $$(dirname $$(which erl))) build --@rules_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_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 build --//:elixir_home=$(shell dirname $$(dirname $$(which iex)))/lib/elixir
# rabbitmqctl wait shells out to 'ps', which is broken in the bazel macOS # rabbitmqctl wait shells out to 'ps', which is broken in the bazel macOS

View File

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

View File

@ -1,5 +1,6 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "ErlangLibInfo", "flat_deps", "path_join") load("@rules_erlang//:erlang_app_info.bzl", "ErlangAppInfo", "flat_deps")
load("@bazel-erlang//:ct.bzl", "additional_file_dest_relative_path") load("@rules_erlang//:util.bzl", "path_join")
load("@rules_erlang//:ct.bzl", "additional_file_dest_relative_path")
RabbitmqHomeInfo = provider( RabbitmqHomeInfo = provider(
doc = "An assembled RABBITMQ_HOME dir", doc = "An assembled RABBITMQ_HOME dir",
@ -10,13 +11,10 @@ RabbitmqHomeInfo = provider(
def _copy_script(ctx, script): def _copy_script(ctx, script):
dest = ctx.actions.declare_file(path_join(ctx.label.name, "sbin", script.basename)) dest = ctx.actions.declare_file(path_join(ctx.label.name, "sbin", script.basename))
args = ctx.actions.args() ctx.actions.expand_template(
args.add_all([script, dest]) template = script,
ctx.actions.run( output = dest,
inputs = [script], substitutions = {},
outputs = [dest],
executable = "cp",
arguments = [args],
) )
return dest return dest
@ -30,11 +28,11 @@ def link_escript(ctx, escript):
return s return s
def _plugins_dir_links(ctx, plugin): def _plugins_dir_links(ctx, plugin):
lib_info = plugin[ErlangLibInfo] lib_info = plugin[ErlangAppInfo]
plugin_path = path_join( plugin_path = path_join(
ctx.label.name, ctx.label.name,
"plugins", "plugins",
lib_info.lib_name, lib_info.app_name,
) )
links = [] links = []
@ -73,7 +71,7 @@ def _plugins_dir_links(ctx, plugin):
def unique_versions(plugins): def unique_versions(plugins):
erlang_versions = [] erlang_versions = []
for plugin in plugins: for plugin in plugins:
erlang_version = plugin[ErlangLibInfo].erlang_version erlang_version = plugin[ErlangAppInfo].erlang_version
if not erlang_version in erlang_versions: if not erlang_version in erlang_versions:
erlang_versions.append(erlang_version) erlang_versions.append(erlang_version)
return erlang_versions return erlang_versions
@ -88,7 +86,11 @@ def _impl(ctx):
if len(erlang_versions) > 1: if len(erlang_versions) > 1:
fail("plugins do not have a unified erlang version", erlang_versions) 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_ctl_copies = [
"rabbitmq-diagnostics", "rabbitmq-diagnostics",
@ -105,10 +107,10 @@ def _impl(ctx):
rabbitmqctl = None rabbitmqctl = None
for script in scripts: for script in scripts:
if script.basename == "rabbitmqctl": if script.basename == ("rabbitmqctl" if not ctx.attr.is_windows else "rabbitmqctl.bat"):
rabbitmqctl = script rabbitmqctl = script
if rabbitmqctl == None: if rabbitmqctl == None:
fail("could not find rabbitmqct among", scripts) fail("could not find rabbitmqctl among", scripts)
return [ return [
RabbitmqHomeInfo( RabbitmqHomeInfo(
@ -132,15 +134,37 @@ RABBITMQ_HOME_ATTRS = {
], ],
allow_files = True, 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"), "_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, implementation = _impl,
attrs = RABBITMQ_HOME_ATTRS, 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): def _dirname(p):
return p.rpartition("/")[0] return p.rpartition("/")[0]

View File

@ -1,59 +1,114 @@
load("@bazel-erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider") load("@rules_erlang//:erlang_home.bzl", "ErlangHomeProvider", "ErlangVersionProvider")
load("@bazel-erlang//:bazel_erlang_lib.bzl", "path_join") load("@rules_erlang//:util.bzl", "path_join", "windows_path")
load("@bazel-erlang//:ct.bzl", "sanitize_sname") load("@rules_erlang//:ct.bzl", "sanitize_sname")
load(":rabbitmq_home.bzl", "RabbitmqHomeInfo", "rabbitmq_home_short_path") load(":rabbitmq_home.bzl", "RabbitmqHomeInfo", "rabbitmq_home_short_path")
def _impl(ctx): def _impl(ctx):
rabbitmq_home_path = rabbitmq_home_short_path(ctx.attr.home) rabbitmq_home_path = rabbitmq_home_short_path(ctx.attr.home)
# the rabbitmq-run.sh template only allows a single erl_libs currently # 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( ctx.actions.expand_template(
template = ctx.file._template, template = ctx.file._template,
output = ctx.outputs.executable, output = output,
substitutions = { substitutions = {
"{RABBITMQ_HOME}": rabbitmq_home_path, "{RABBITMQ_HOME}": rabbitmq_home_path,
"{ERL_LIBS}": ":".join(erl_libs), "{ERL_LIBS}": erl_libs,
"{ERLANG_HOME}": ctx.attr._erlang_home[ErlangHomeProvider].path, "{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, is_executable = True,
) )
runfiles = ctx.runfiles(ctx.attr.home[DefaultInfo].files.to_list()) 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, implementation = _impl,
attrs = { attrs = {
"_template": attr.label( "_template": attr.label(
default = Label("//:scripts/bazel/rabbitmq-run.sh"), default = Label("//:scripts/bazel/rabbitmq-run.sh"),
allow_single_file = True, 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]), "home": attr.label(providers = [RabbitmqHomeInfo]),
}, },
executable = True, 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): def _run_command_impl(ctx):
ctx.actions.write( if not ctx.attr.is_windows:
output = ctx.outputs.executable, output = ctx.actions.declare_file(ctx.label.name)
content = "exec ./{} {} $@".format( script = "exec ./{} {} $@".format(
ctx.attr.rabbitmq_run[DefaultInfo].files_to_run.executable.short_path, ctx.attr.rabbitmq_run[DefaultInfo].files_to_run.executable.short_path,
ctx.attr.subcommand, 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( return [DefaultInfo(
runfiles = ctx.attr.rabbitmq_run[DefaultInfo].default_runfiles, runfiles = ctx.attr.rabbitmq_run[DefaultInfo].default_runfiles,
executable = output,
)] )]
rabbitmq_run_command = rule( rabbitmq_run_command_private = rule(
implementation = _run_command_impl, implementation = _run_command_impl,
attrs = { attrs = {
"is_windows": attr.bool(mandatory = True),
"rabbitmq_run": attr.label( "rabbitmq_run": attr.label(
executable = True, executable = True,
cfg = "target", cfg = "target",
@ -66,3 +121,12 @@ rabbitmq_run_command = rule(
}, },
executable = True, 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") load(":rabbitmq_home.bzl", "RabbitmqHomeInfo", "rabbitmq_home_short_path")
def _impl(ctx): def _impl(ctx):
@ -25,7 +25,7 @@ def _impl(ctx):
rabbitmqctl = rule( rabbitmqctl = rule(
implementation = _impl, implementation = _impl,
attrs = { 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]), "home": attr.label(providers = [RabbitmqHomeInfo]),
}, },
executable = True, 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): def _impl(ctx):
out = ctx.actions.declare_file(ctx.label.name) 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( erlang_ls_config = rule(
implementation = _impl, implementation = _impl,
attrs = { 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 --@rules_erlang//:erlang_home=/Users/rabbitmq/kerl/24.0
build --@bazel-erlang//:erlang_version=24.0 build --@rules_erlang//:erlang_version=24.0
build --//:elixir_home=/Users/rabbitmq/.kiex/elixirs/elixir-1.12.0/lib/elixir 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 # 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:http.bzl", "http_archive")
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository", "new_git_repository") load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository", "new_git_repository")
load("@bazel-erlang//:github.bzl", "github_bazel_erlang_lib") load("@rules_erlang//:github.bzl", "github_erlang_app")
load("@bazel-erlang//:hex_archive.bzl", "hex_archive") load("@rules_erlang//:hex_archive.bzl", "hex_archive")
load("@bazel-erlang//:hex_pm.bzl", "hex_pm_bazel_erlang_lib") load("@rules_erlang//:hex_pm.bzl", "hex_pm_erlang_app")
load("//:rabbitmq.bzl", "APP_VERSION") load("//:rabbitmq.bzl", "APP_VERSION")
def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"): def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"):
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "accept", name = "accept",
version = "0.3.5", version = "0.3.5",
sha256 = "11b18c220bcc2eab63b5470c038ef10eb6783bcb1fcdb11aa4137defa5ac1bb8", sha256 = "11b18c220bcc2eab63b5470c038ef10eb6783bcb1fcdb11aa4137defa5ac1bb8",
) )
github_bazel_erlang_lib( github_erlang_app(
name = "aten", name = "aten",
org = "rabbitmq", org = "rabbitmq",
sha256 = "f27453bfa270538e1b48a9111206847e19a5ad51b4ded4f03fcb0184fbb555be", sha256 = "f27453bfa270538e1b48a9111206847e19a5ad51b4ded4f03fcb0184fbb555be",
@ -20,7 +20,7 @@ def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"):
version = "0.5.7", version = "0.5.7",
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "base64url", name = "base64url",
version = "1.0.1", version = "1.0.1",
sha256 = "f9b3add4731a02a9b0410398b475b33e7566a695365237a6bdee1bb447719f5c", sha256 = "f9b3add4731a02a9b0410398b475b33e7566a695365237a6bdee1bb447719f5c",
@ -33,7 +33,7 @@ def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"):
build_file = rabbitmq_workspace + "//:BUILD.bats", build_file = rabbitmq_workspace + "//:BUILD.bats",
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "cowboy", name = "cowboy",
first_srcs = [ first_srcs = [
"src/cowboy_stream.erl", "src/cowboy_stream.erl",
@ -43,18 +43,18 @@ def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"):
version = "2.8.0", version = "2.8.0",
sha256 = "4643e4fba74ac96d4d152c75803de6fad0b3fa5df354c71afdd6cbeeb15fac8a", sha256 = "4643e4fba74ac96d4d152c75803de6fad0b3fa5df354c71afdd6cbeeb15fac8a",
deps = [ deps = [
"@cowlib//:bazel_erlang_lib", "@cowlib//:erlang_app",
"@ranch//:bazel_erlang_lib", "@ranch//:erlang_app",
], ],
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "cowlib", name = "cowlib",
version = "2.9.1", version = "2.9.1",
sha256 = "e4175dc240a70d996156160891e1c62238ede1729e45740bdd38064dad476170", sha256 = "e4175dc240a70d996156160891e1c62238ede1729e45740bdd38064dad476170",
) )
github_bazel_erlang_lib( github_erlang_app(
repo = "credentials-obfuscation", repo = "credentials-obfuscation",
name = "credentials_obfuscation", name = "credentials_obfuscation",
org = "rabbitmq", org = "rabbitmq",
@ -63,23 +63,23 @@ def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"):
version = "2.4.0", version = "2.4.0",
) )
github_bazel_erlang_lib( github_erlang_app(
name = "ct_helper", name = "ct_helper",
org = "extend", org = "extend",
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "cuttlefish", name = "cuttlefish",
version = "3.0.1", version = "3.0.1",
sha256 = "3feff3ae4ed1f0ca6df87ac89235068fbee9242ee85d2ac17fb1b8ce0e30f1a6", sha256 = "3feff3ae4ed1f0ca6df87ac89235068fbee9242ee85d2ac17fb1b8ce0e30f1a6",
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "eetcd", name = "eetcd",
version = "0.3.3", version = "0.3.3",
sha256 = "8fb280156ddd1b7b34d0f446c5711832385bff512c05378dcea8362f4f5060d6", sha256 = "8fb280156ddd1b7b34d0f446c5711832385bff512c05378dcea8362f4f5060d6",
runtime_deps = [ runtime_deps = [
"@gun//:bazel_erlang_lib", "@gun//:erlang_app",
], ],
) )
@ -87,9 +87,9 @@ def rabbitmq_external_deps(rabbitmq_workspace = "@rabbitmq-server"):
name = "emqttc", name = "emqttc",
urls = ["https://github.com/rabbitmq/emqttc/archive/remove-logging.zip"], urls = ["https://github.com/rabbitmq/emqttc/archive/remove-logging.zip"],
strip_prefix = "emqttc-remove-logging", 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", app_name = "emqttc",
erlc_opts = [ erlc_opts = [
"+warn_export_all", "+warn_export_all",
@ -99,19 +99,19 @@ erlang_lib(
""", """,
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "enough", name = "enough",
version = "0.1.0", version = "0.1.0",
sha256 = "0460c7abda5f5e0ea592b12bc6976b8a5c4b96e42f332059cd396525374bf9a1", sha256 = "0460c7abda5f5e0ea592b12bc6976b8a5c4b96e42f332059cd396525374bf9a1",
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "gen_batch_server", name = "gen_batch_server",
version = "0.8.6", version = "0.8.6",
sha256 = "b78679349168f27d7047f3283c9d766760b234d98c762aca9a1907f4ee3fd406", sha256 = "b78679349168f27d7047f3283c9d766760b234d98c762aca9a1907f4ee3fd406",
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "gun", name = "gun",
version = "1.3.3", version = "1.3.3",
sha256 = "3106ce167f9c9723f849e4fb54ea4a4d814e3996ae243a1c828b256e749041e0", sha256 = "3106ce167f9c9723f849e4fb54ea4a4d814e3996ae243a1c828b256e749041e0",
@ -119,7 +119,7 @@ erlang_lib(
"src/gun_content_handler.erl", "src/gun_content_handler.erl",
], ],
runtime_deps = [ runtime_deps = [
"@cowlib//:bazel_erlang_lib", "@cowlib//:erlang_app",
], ],
erlc_opts = [ erlc_opts = [
"+debug_info", "+debug_info",
@ -136,7 +136,7 @@ erlang_lib(
urls = ["https://github.com/rabbitmq/inet_tcp_proxy/archive/master.zip"], urls = ["https://github.com/rabbitmq/inet_tcp_proxy/archive/master.zip"],
) )
github_bazel_erlang_lib( github_erlang_app(
name = "jose", name = "jose",
repo = "erlang-jose", repo = "erlang-jose",
org = "potatosalad", org = "potatosalad",
@ -151,18 +151,18 @@ erlang_lib(
sha256 = "7816f39d00655f2605cfac180755e97e268dba86c2f71037998ff63792ca727b", sha256 = "7816f39d00655f2605cfac180755e97e268dba86c2f71037998ff63792ca727b",
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "jsx", name = "jsx",
version = "3.1.0", version = "3.1.0",
sha256 = "0c5cc8fdc11b53cc25cf65ac6705ad39e54ecc56d1c22e4adb8f5a53fb9427f3", sha256 = "0c5cc8fdc11b53cc25cf65ac6705ad39e54ecc56d1c22e4adb8f5a53fb9427f3",
) )
github_bazel_erlang_lib( github_erlang_app(
name = "meck", name = "meck",
org = "eproxus", org = "eproxus",
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "observer_cli", name = "observer_cli",
version = "1.7.1", version = "1.7.1",
sha256 = "4ccafaaa2ce01b85ddd14591f4d5f6731b4e13b610a70fb841f0701178478280", sha256 = "4ccafaaa2ce01b85ddd14591f4d5f6731b4e13b610a70fb841f0701178478280",
@ -170,11 +170,11 @@ erlang_lib(
git_repository( git_repository(
name = "osiris", name = "osiris",
branch = "main", branch = "use-rules_erlang",
remote = "https://github.com/rabbitmq/osiris.git", remote = "https://github.com/rabbitmq/osiris.git",
) )
github_bazel_erlang_lib( github_erlang_app(
name = "prometheus", name = "prometheus",
repo = "prometheus.erl", repo = "prometheus.erl",
org = "deadtrickster", org = "deadtrickster",
@ -187,11 +187,11 @@ erlang_lib(
"src/prometheus_metric.erl", "src/prometheus_metric.erl",
], ],
deps = [ deps = [
"@quantile_estimator//:bazel_erlang_lib", "@quantile_estimator//:erlang_app",
], ],
) )
github_bazel_erlang_lib( github_erlang_app(
name = "proper", name = "proper",
first_srcs = [ first_srcs = [
"src/vararg.erl", "src/vararg.erl",
@ -200,7 +200,7 @@ erlang_lib(
org = "manopapad", org = "manopapad",
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "quantile_estimator", name = "quantile_estimator",
version = "0.2.1", version = "0.2.1",
erlc_opts = [ erlc_opts = [
@ -211,7 +211,7 @@ erlang_lib(
git_repository( git_repository(
name = "ra", name = "ra",
branch = "main", branch = "use-rules_erlang",
remote = "https://github.com/rabbitmq/ra.git", remote = "https://github.com/rabbitmq/ra.git",
) )
@ -222,19 +222,19 @@ erlang_lib(
build_file = rabbitmq_workspace + "//:BUILD.ranch", build_file = rabbitmq_workspace + "//:BUILD.ranch",
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "recon", name = "recon",
version = "2.5.1", version = "2.5.1",
sha256 = "5721c6b6d50122d8f68cccac712caa1231f97894bab779eff5ff0f886cb44648", sha256 = "5721c6b6d50122d8f68cccac712caa1231f97894bab779eff5ff0f886cb44648",
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "redbug", name = "redbug",
version = "2.0.7", version = "2.0.7",
sha256 = "3624feb7a4b78fd9ae0e66cc3158fe7422770ad6987a1ebf8df4d3303b1c4b0c", sha256 = "3624feb7a4b78fd9ae0e66cc3158fe7422770ad6987a1ebf8df4d3303b1c4b0c",
) )
github_bazel_erlang_lib( github_erlang_app(
name = "seshat", name = "seshat",
org = "rabbitmq", org = "rabbitmq",
ref = "main", ref = "main",
@ -245,13 +245,13 @@ erlang_lib(
], ],
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "stdout_formatter", name = "stdout_formatter",
version = "0.2.4", version = "0.2.4",
sha256 = "51f1df921b0477275ea712763042155dbc74acc75d9648dbd54985c45c913b29", sha256 = "51f1df921b0477275ea712763042155dbc74acc75d9648dbd54985c45c913b29",
) )
github_bazel_erlang_lib( github_erlang_app(
name = "syslog", name = "syslog",
org = "schlagert", org = "schlagert",
sha256 = "01c31c31d4d28e564da0660bdb69725ba37173fca5b3228829b8f3f416f9e486", sha256 = "01c31c31d4d28e564da0660bdb69725ba37173fca5b3228829b8f3f416f9e486",
@ -262,18 +262,18 @@ erlang_lib(
], ],
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "sysmon_handler", name = "sysmon_handler",
version = "1.3.0", version = "1.3.0",
sha256 = "922cf0dd558b9fdb1326168373315b52ed6a790ba943f6dcbd9ee22a74cebdef", sha256 = "922cf0dd558b9fdb1326168373315b52ed6a790ba943f6dcbd9ee22a74cebdef",
) )
hex_pm_bazel_erlang_lib( hex_pm_erlang_app(
name = "systemd", name = "systemd",
version = "0.6.1", version = "0.6.1",
sha256 = "8ec5ed610a5507071cdb7423e663e2452a747a624bb8a58582acd9491ccad233", sha256 = "8ec5ed610a5507071cdb7423e663e2452a747a624bb8a58582acd9491ccad233",
deps = [ deps = [
"@enough//:bazel_erlang_lib", "@enough//:erlang_app",
], ],
) )