summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Kuryloski <kuryloskip@vmware.com>2021-04-29 17:39:42 +0200
committerPhilip Kuryloski <kuryloskip@vmware.com>2021-04-29 18:23:09 +0200
commit67fc1cf1d93192b3fd9700105d74154e084e3997 (patch)
treea5de13ef60144b55869b4fc24691b899bd6ccbb9
parent2450da966412a5432606b1fe353707d90e531444 (diff)
downloadrabbitmq-server-git-rework-peer-discovery-aws-suite.tar.gz
Add rabbitmq_peer_discovery_aws to bazelrework-peer-discovery-aws-suite
-rw-r--r--.github/workflows/rabbitmq_peer_discovery_aws.yaml53
-rw-r--r--.github/workflows/test.yaml4
-rw-r--r--deps/rabbitmq_peer_discovery_aws/.gitignore2
-rw-r--r--deps/rabbitmq_peer_discovery_aws/BUILD.bazel116
4 files changed, 160 insertions, 15 deletions
diff --git a/.github/workflows/rabbitmq_peer_discovery_aws.yaml b/.github/workflows/rabbitmq_peer_discovery_aws.yaml
index 40d6bb7512..7cd67e2053 100644
--- a/.github/workflows/rabbitmq_peer_discovery_aws.yaml
+++ b/.github/workflows/rabbitmq_peer_discovery_aws.yaml
@@ -7,19 +7,23 @@ jobs:
peer-discovery-aws-integration-test:
name: Integration Test
runs-on: ubuntu-18.04
+ strategy:
+ matrix:
+ erlang_version:
+ - "23"
timeout-minutes: 45
steps:
- name: CHECKOUT REPOSITORY
uses: actions/checkout@v2
+ - name: CONFIGURE OTP & ELIXIR
+ uses: erlef/setup-beam@v1.7
+ with:
+ otp-version: ${{ matrix.erlang_version }}
+ elixir-version: 1.11.4
- name: SETUP AWS ecs-cli
uses: marocchino/setup-ecs-cli@v1
with:
version: "v1.21.0"
- - name: Set up min required Erlang & Elixir
- uses: erlef/setup-beam@v1.7
- with:
- otp-version: '23.2'
- elixir-version: '1.11.4'
- name: WAIT FOR OCI IMAGE WORKFLOW
uses: lewagon/wait-on-check-action@v0.2
with:
@@ -27,10 +31,37 @@ jobs:
check-name: build-publish-dev
repo-token: ${{ secrets.GITHUB_TOKEN }}
wait-interval: 30 # seconds
- - name: RUN TESTS
+ - name: CONFIGURE BAZEL
+ run: |
+ ERLANG_HOME="$(dirname $(dirname $(which erl)))"
+ ELIXIR_HOME="$(dirname $(dirname $(which iex)))"
+ echo "${{ secrets.BUILDBUDDY_CERT }}" > buildbuddy-cert.pem
+ echo "${{ secrets.BUILDBUDDY_KEY }}" > buildbuddy-key.pem
+ cat << EOF >> .bazelrc
+ build --@bazel-erlang//:erlang_version=${{ matrix.erlang_version }}
+ build --@bazel-erlang//:erlang_home=${ERLANG_HOME}
+ build --//:elixir_home=${ELIXIR_HOME}
+
+ build --bes_results_url=https://app.buildbuddy.io/invocation/
+ build --bes_backend=grpcs://cloud.buildbuddy.io
+ build --remote_cache=grpcs://cloud.buildbuddy.io
+ build --tls_client_certificate=buildbuddy-cert.pem
+ build --tls_client_key=buildbuddy-key.pem
+ build --remote_timeout=1200
+
+ build --build_metadata=ROLE=CI
+ build --build_metadata=VISIBILITY=PRIVATE
+ build --remote_instance_name=buildbuddy-io/buildbuddy/ci-aws
+ build --grpc_keepalive_time=30s
+ EOF
+ #! - name: Setup tmate session
+ #! uses: mxschmitt/action-tmate@v3
+ - name: RUN INTEGRATION TESTS
run: |
- make -C deps/rabbitmq_peer_discovery_aws \
- ct-integration \
- AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }} \
- AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }} \
- RABBITMQ_IMAGE="pivotalrabbitmq/rabbitmq:${{ github.ref }}"
+ bazelisk test //deps/rabbitmq_peer_discovery_aws:integration_SUITE \
+ --test_tag_filters=aws \
+ --build_tests_only \
+ --test_env AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }} \
+ --test_env AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }} \
+ --test_env RABBITMQ_IMAGE="pivotalrabbitmq/rabbitmq:${{ github.ref }}" \
+ --verbose_failures
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index e8b3df1a2a..4b4700ecdd 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -52,7 +52,7 @@ jobs:
- name: RUN TESTS
run: |
bazelisk test //... \
- --test_tag_filters=-exclusive \
+ --test_tag_filters=-exclusive,-aws \
--verbose_failures
test-exclusive:
name: Test (Exclusive Tests)
@@ -98,7 +98,7 @@ jobs:
- name: RUN EXCLUSIVE TESTS
run: |
bazelisk test //... \
- --test_tag_filters=exclusive \
+ --test_tag_filters=exclusive,-aws \
--build_tests_only \
--test_env RABBITMQ_CT_HELPERS_DELETE_UNUSED_NODES=true \
--verbose_failures
diff --git a/deps/rabbitmq_peer_discovery_aws/.gitignore b/deps/rabbitmq_peer_discovery_aws/.gitignore
index ccf176d76f..08630c4a36 100644
--- a/deps/rabbitmq_peer_discovery_aws/.gitignore
+++ b/deps/rabbitmq_peer_discovery_aws/.gitignore
@@ -23,5 +23,3 @@
/xrefr
/rabbitmq_peer_discovery_aws.d
-
-/log/
diff --git a/deps/rabbitmq_peer_discovery_aws/BUILD.bazel b/deps/rabbitmq_peer_discovery_aws/BUILD.bazel
new file mode 100644
index 0000000000..2620799648
--- /dev/null
+++ b/deps/rabbitmq_peer_discovery_aws/BUILD.bazel
@@ -0,0 +1,116 @@
+load("@bazel-erlang//:bazel_erlang_lib.bzl", "DEFAULT_TEST_ERLC_OPTS", "erlang_lib", "test_erlang_lib")
+load("@bazel-erlang//:ct.bzl", "ct_suite")
+load("//:rabbitmq_home.bzl", "rabbitmq_home")
+load("//:rabbitmq_run.bzl", "rabbitmq_run")
+load("//:rabbitmq.bzl", "APP_VERSION")
+
+APP_NAME = "rabbitmq_peer_discovery_aws"
+
+APP_DESCRIPTION = "AWS-based RabbitMQ peer discovery backend"
+
+EXTRA_APPS = [
+ "inets",
+]
+
+DEPS = [
+ "//deps/rabbit_common:bazel_erlang_lib",
+ "//deps/rabbitmq_peer_discovery_common:bazel_erlang_lib",
+]
+
+RUNTIME_DEPS = [
+ "//deps/rabbitmq_aws:bazel_erlang_lib",
+ "//deps/rabbit:bazel_erlang_lib",
+]
+
+erlang_lib(
+ app_description = APP_DESCRIPTION,
+ app_name = APP_NAME,
+ app_version = APP_VERSION,
+ extra_apps = EXTRA_APPS,
+ runtime_deps = RUNTIME_DEPS,
+ deps = DEPS,
+)
+
+TEST_ERLC_OPTS = DEFAULT_TEST_ERLC_OPTS + [
+ "+nowarn_export_all",
+]
+
+test_erlang_lib(
+ app_description = APP_DESCRIPTION,
+ app_name = APP_NAME,
+ app_version = APP_VERSION,
+ erlc_opts = TEST_ERLC_OPTS,
+ extra_apps = EXTRA_APPS,
+ runtime_deps = RUNTIME_DEPS,
+ deps = DEPS,
+)
+
+rabbitmq_home(
+ name = "broker-for-tests-home",
+ plugins = [
+ "//deps/rabbit:bazel_erlang_lib",
+ ":bazel_erlang_lib",
+ ],
+)
+
+rabbitmq_run(
+ name = "rabbitmq-for-tests-run",
+ home = ":broker-for-tests-home",
+)
+
+ct_suite(
+ name = "config_schema_SUITE",
+ size = "small",
+ data = [
+ "@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
+ "@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
+ ],
+ erlc_opts = TEST_ERLC_OPTS,
+ test_env = {
+ "RABBITMQ_CT_SKIP_AS_ERROR": "true",
+ "RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_peer_discovery_aws/rabbitmq-for-tests-run",
+ "RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_peer_discovery_aws/broker-for-tests-home/sbin/rabbitmqctl",
+ "RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_peer_discovery_aws/broker-for-tests-home/sbin/rabbitmq-plugins",
+ },
+ tools = [
+ ":rabbitmq-for-tests-run",
+ ],
+ runtime_deps = [
+ "//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
+ "//deps/rabbitmq_cli:rabbitmqctl",
+ "@rabbitmq_ct_client_helpers//:bazel_erlang_lib",
+ "@rabbitmq_ct_helpers//:bazel_erlang_lib",
+ ],
+)
+
+# NOTE: integration_SUITE requires aws credentials. They can be
+# supplied with:
+# --test_env AWS_ACCESS_KEY_ID=... --test_env AWS_SECRET_ACCESS_KEY=...
+# bazel args
+ct_suite(
+ name = "integration_SUITE",
+ size = "large",
+ additional_srcs = [
+ "test/aws_ecs_util.erl",
+ ],
+ erlc_opts = TEST_ERLC_OPTS,
+ tags = [
+ "aws",
+ "external",
+ ],
+ test_env = {
+ "RABBITMQ_CT_SKIP_AS_ERROR": "true",
+ },
+ deps = [
+ "@rabbitmq_ct_helpers//:bazel_erlang_lib",
+ ],
+)
+
+ct_suite(
+ name = "unit_SUITE",
+ size = "small",
+ erlc_opts = TEST_ERLC_OPTS,
+ test_env = {
+ "RABBITMQ_CT_SKIP_AS_ERROR": "true",
+ },
+)