Skip to content

Commit

Permalink
Use rules_erlang v2
Browse files Browse the repository at this point in the history
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
  • Loading branch information
HoloRin committed Jan 18, 2022
1 parent 96c9270 commit efcd881
Show file tree
Hide file tree
Showing 72 changed files with 1,330 additions and 918 deletions.
6 changes: 3 additions & 3 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ build:rbe --host_java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8
build:rbe --java_toolchain=@bazel_tools//tools/jdk:toolchain_hostjdk8
build:rbe --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1

build:rbe --@bazel-erlang//:erlang_home=/usr/lib/erlang
build:rbe --@rules_erlang//:erlang_home=/usr/lib/erlang
build:rbe --//:elixir_home=/usr/local

build:rbe --spawn_strategy=remote
Expand All @@ -37,7 +37,7 @@ build:rbe-23 --host_platform=@rbe_23//config:platform
build:rbe-23 --platforms=@rbe_23//config:platform
build:rbe-23 --extra_execution_platforms=@rbe_23//config:platform

build:rbe-23 --@bazel-erlang//:erlang_version=23
build:rbe-23 --@rules_erlang//:erlang_version=23

build:rbe-24 --config=rbe
build:rbe-24 --host_javabase=@rbe_24//java:jdk
Expand All @@ -49,7 +49,7 @@ build:rbe-24 --host_platform=@rbe_24//config:platform
build:rbe-24 --platforms=@rbe_24//config:platform
build:rbe-24 --extra_execution_platforms=@rbe_24//config:platform

build:rbe-24 --@bazel-erlang//:erlang_version=24
build:rbe-24 --@rules_erlang//:erlang_version=24

# Try importing a user specific .bazelrc
# You can create your own by copying and editing the template-user.bazelrc template:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test-erlang-git.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ jobs:
build:rbe-git --host_platform=//:erlang_git_platform
build:rbe-git --platforms=//:erlang_git_platform
build:rbe-git --extra_execution_platforms=//:erlang_git_platform
build:rbe-git --@bazel-erlang//:erlang_home=/usr/local/lib/erlang
build:rbe-git --@bazel-erlang//:erlang_version=25
build:rbe-git --@rules_erlang//:erlang_home=/usr/local/lib/erlang
build:rbe-git --@rules_erlang//:erlang_version=25
EOF
#! - name: Setup tmate session
#! uses: mxschmitt/action-tmate@v3
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test-mixed-versions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,8 @@ jobs:
build:buildbuddy --color=yes
build:buildbuddy --disk_cache=
build --@bazel-erlang//:erlang_version=${{ matrix.erlang_version }}
build --@bazel-erlang//:erlang_home=${ERLANG_HOME}
build --@rules_erlang//:erlang_version=${{ matrix.erlang_version }}
build --@rules_erlang//:erlang_home=${ERLANG_HOME}
build --//:elixir_home=${ELIXIR_HOME}
EOF
#! - name: Setup tmate session
Expand Down
65 changes: 65 additions & 0 deletions .github/workflows/test-windows.yaml
Original file line number Diff line number Diff line change
@@ -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/[email protected]
- 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
4 changes: 2 additions & 2 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ jobs:
build:buildbuddy --color=yes
build:buildbuddy --disk_cache=
build --@bazel-erlang//:erlang_version=${{ matrix.erlang_version }}
build --@bazel-erlang//:erlang_home=${ERLANG_HOME}
build --@rules_erlang//:erlang_version=${{ matrix.erlang_version }}
build --@rules_erlang//:erlang_home=${ERLANG_HOME}
build --//:elixir_home=${ELIXIR_HOME}
EOF
#! - name: Setup tmate session
Expand Down
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
name: Update bazel-erlang
name: Update rules_erlang
on:
schedule:
- cron: '0 3 * * *'
workflow_dispatch:
jobs:
update-bazel-erlang:
name: Update bazel-erlang
update-rules_erlang:
name: Update rules_erlang
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: CHECKOUT REPOSITORY
uses: actions/[email protected]
with:
path: rabbitmq-server
- name: CHECKOUT bazel-erlang
- name: CHECKOUT rules_erlang
uses: actions/[email protected]
with:
repository: rabbitmq/bazel-erlang
path: bazel-erlang
repository: rabbitmq/rules_erlang
path: rules_erlang
- name: DETERMINE LATEST COMMIT
id: find-commit
working-directory: bazel-erlang
working-directory: rules_erlang
run: |
echo "::set-output name=SHA::$(git rev-parse HEAD)"
- name: UPDATE bazel-erlang COMMIT
- name: UPDATE rules_erlang COMMIT
working-directory: rabbitmq-server
run: |
sudo npm install --global --silent @bazel/buildozer
echo "$(cat WORKSPACE.bazel | npx buildozer 'set commit "${{ steps.find-commit.outputs.SHA }}"' -:bazel-erlang)" > WORKSPACE.bazel
echo "$(cat WORKSPACE.bazel | npx buildozer 'set commit "${{ steps.find-commit.outputs.SHA }}"' -:rules_erlang)" > WORKSPACE.bazel
git diff
- name: CREATE PULL REQUEST
uses: peter-evans/create-pull-request@v3
Expand All @@ -36,10 +36,10 @@ jobs:
committer: GitHub <[email protected]>
author: GitHub <[email protected]>
path: rabbitmq-server
title: Adopt latest bazel-erlang
title: Adopt latest rules_erlang
commit-message: |
Adopt latest bazel-erlang
Adopt latest rules_erlang
- bazel-erlang@${{ steps.find-commit.outputs.SHA }}
branch: bump-bazel-erlang
- rules_erlang@${{ steps.find-commit.outputs.SHA }}
branch: bump-rules_erlang
delete-branch: true
23 changes: 3 additions & 20 deletions BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
load("@rules_pkg//:pkg.bzl", "pkg_tar")
load("@bazel-erlang//:dialyze.bzl", "plt")
load("@bazel-erlang//:shell.bzl", "shell")
load("@rules_erlang//:dialyze.bzl", "plt")
load("@rules_erlang//:shell.bzl", "shell")
load("elixir_home.bzl", "elixir_home")
load(":rabbitmq_home.bzl", "rabbitmq_home")
load(":rabbitmq_run.bzl", "rabbitmq_run", "rabbitmq_run_command")
Expand All @@ -10,6 +10,7 @@ load(":dist.bzl", "collect_licenses", "versioned_rabbitmq_home")

exports_files([
"scripts/bazel/rabbitmq-run.sh",
"scripts/bazel/rabbitmq-run.bat",
])

config_setting(
Expand Down Expand Up @@ -52,30 +53,12 @@ rabbitmq_home(
plugins = all_plugins(rabbitmq_workspace = ""),
)

rabbitmq_home(
name = "broker-for-cli-tests-home",
testonly = True,
plugins = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_federation:bazel_erlang_lib",
"//deps/rabbitmq_stomp:bazel_erlang_lib",
"//deps/amqp_client:bazel_erlang_lib",
],
)

rabbitmq_run(
name = "rabbitmq-run",
home = ":broker-home",
visibility = ["//visibility:public"],
)

rabbitmq_run(
name = "rabbitmq-for-cli-tests-run",
testonly = True,
home = ":broker-for-cli-tests-home",
visibility = ["//visibility:public"],
)

# Allow us to `bazel run broker`
# for the equivalent of `make run-broker`
rabbitmq_run_command(
Expand Down
4 changes: 2 additions & 2 deletions BUILD.inet_tcp_proxy
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib")
load("@rules_erlang//:erlang_app.bzl", "erlang_app")

erlang_lib(
erlang_app(
app_name = "inet_tcp_proxy_dist",
app_version = "0.1.0",
app_description = "Erlang distribution proxy to simulate network failures",
Expand Down
10 changes: 6 additions & 4 deletions BUILD.ranch
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "app_file", "bazel_erlang_lib", "erlc",
"DEFAULT_ERLC_OPTS")
load("@rules_erlang//:app_file.bzl", "app_file")
load("@rules_erlang//:erlang_app_info.bzl", "erlang_app_info")
load("@rules_erlang//:erlang_app.bzl", "DEFAULT_ERLC_OPTS")
load("@rules_erlang//:erlc.bzl", "erlc")

FIRST_SRCS = [
"src/ranch_transport.erl",
Expand Down Expand Up @@ -36,8 +38,8 @@ app_file(
modules = [":first_beam_files", ":beam_files"],
)

bazel_erlang_lib(
name = "bazel_erlang_lib",
erlang_app_info(
name = "erlang_app",
app_name = "ranch",
app = ":app_file",
hdrs = glob(["include/**/*.hrl"]),
Expand Down
8 changes: 4 additions & 4 deletions BUILD.trust_store_http
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib")
load("@rules_erlang//:erlang_app.bzl", "erlang_app")

erlang_lib(
erlang_app(
app_name = "trust_store_http",
app_description = "Trust store HTTP server",
app_module = "trust_store_http_app",
Expand All @@ -9,7 +9,7 @@ erlang_lib(
"ssl",
],
deps = [
"@cowboy//:bazel_erlang_lib",
"@jsx//:bazel_erlang_lib",
"@cowboy//:erlang_app",
"@jsx//:erlang_app",
],
)
13 changes: 7 additions & 6 deletions WORKSPACE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,15 @@ load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")
rules_pkg_dependencies()

git_repository(
name = "bazel-erlang",
commit = "d62a13548b3d1e5bd2830f42e3f3933ae17db3cb",
remote = "https://github.com/rabbitmq/bazel-erlang.git",
name = "rules_erlang",
branch = "v2",
# commit = "d62a13548b3d1e5bd2830f42e3f3933ae17db3cb",
remote = "https://github.com/rabbitmq/rules_erlang.git",
)

load("@bazel-erlang//:bazel_erlang.bzl", "bazel_erlang_deps")
load("@rules_erlang//:rules_erlang.bzl", "rules_erlang_dependencies")

bazel_erlang_deps()
rules_erlang_dependencies()

load("//:workspace_helpers.bzl", "rabbitmq_external_deps")

Expand All @@ -84,7 +85,7 @@ pkg_zip(
name = "inet_tcp_proxy_ez",
package_dir = "inet_tcp_proxy/ebin",
srcs = [
"@inet_tcp_proxy//:bazel_erlang_lib",
"@inet_tcp_proxy//:erlang_app",
],
package_file_name = "inet_tcp_proxy.ez",
visibility = ["//visibility:public"],
Expand Down
16 changes: 8 additions & 8 deletions deps/amqp10_client/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze", "plt")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze", "plt")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
load("//:rabbitmq_run.bzl", "rabbitmq_run")
load(
"//:rabbitmq.bzl",
"assert_suites",
"rabbitmq_app",
"rabbitmq_integration_suite",
"rabbitmq_lib",
"rabbitmq_suite",
)

Expand All @@ -23,14 +23,14 @@ EXTRA_APPS = [
]

BUILD_DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit_common:erlang_app",
]

DEPS = [
"//deps/amqp10_common:bazel_erlang_lib",
"//deps/amqp10_common:erlang_app",
]

rabbitmq_lib(
rabbitmq_app(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
Expand All @@ -55,8 +55,8 @@ dialyze(
rabbitmq_home(
name = "broker-for-tests-home",
plugins = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_amqp1_0:bazel_erlang_lib",
"//deps/rabbit:erlang_app",
"//deps/rabbitmq_amqp1_0:erlang_app",
],
)

Expand Down
21 changes: 9 additions & 12 deletions deps/amqp10_common/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
load(
"@bazel-erlang//:bazel_erlang_lib.bzl",
"app_file",
"bazel_erlang_lib",
"erlc",
)
load("@bazel-erlang//:xref.bzl", "xref")
load("@bazel-erlang//:dialyze.bzl", "dialyze")
load("@rules_erlang//:app_file.bzl", "app_file")
load("@rules_erlang//:erlang_app_info.bzl", "erlang_app_info")
load("@rules_erlang//:erlc.bzl", "erlc")
load("@rules_erlang//:xref.bzl", "xref")
load("@rules_erlang//:dialyze.bzl", "dialyze")
load(
"//:rabbitmq.bzl",
"APP_VERSION",
Expand Down Expand Up @@ -65,8 +62,8 @@ erlc(
erlc_opts = RABBITMQ_ERLC_OPTS,
)

bazel_erlang_lib(
name = "bazel_erlang_lib",
erlang_app_info(
name = "erlang_app",
hdrs = ["include/amqp10_framing.hrl"] + glob(["include/*.hrl"]),
app = ":app_file",
app_name = "amqp10_common",
Expand All @@ -82,8 +79,8 @@ erlc(
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
)

bazel_erlang_lib(
name = "test_bazel_erlang_lib",
erlang_app_info(
name = "test_erlang_app",
testonly = True,
hdrs = ["include/amqp10_framing.hrl"] + glob(["include/*.hrl"]),
app = ":app_file",
Expand Down
Loading

0 comments on commit efcd881

Please sign in to comment.