diff options
author | Philip Kuryloski <kuryloskip@vmware.com> | 2021-04-29 17:39:42 +0200 |
---|---|---|
committer | Philip Kuryloski <kuryloskip@vmware.com> | 2021-04-29 18:23:09 +0200 |
commit | 67fc1cf1d93192b3fd9700105d74154e084e3997 (patch) | |
tree | a5de13ef60144b55869b4fc24691b899bd6ccbb9 | |
parent | 2450da966412a5432606b1fe353707d90e531444 (diff) | |
download | rabbitmq-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.yaml | 53 | ||||
-rw-r--r-- | .github/workflows/test.yaml | 4 | ||||
-rw-r--r-- | deps/rabbitmq_peer_discovery_aws/.gitignore | 2 | ||||
-rw-r--r-- | deps/rabbitmq_peer_discovery_aws/BUILD.bazel | 116 |
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", + }, +) |