diff options
-rw-r--r-- | .github/workflows/test-erlang-otp-21.3.yaml | 5606 | ||||
-rw-r--r-- | .github/workflows/test-erlang-otp-22.3.yaml | 5606 |
2 files changed, 11212 insertions, 0 deletions
diff --git a/.github/workflows/test-erlang-otp-21.3.yaml b/.github/workflows/test-erlang-otp-21.3.yaml new file mode 100644 index 0000000000..c7b3a24eb6 --- /dev/null +++ b/.github/workflows/test-erlang-otp-21.3.yaml @@ -0,0 +1,5606 @@ +# vim:sw=2:et: +# https://help.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow +name: "Test - Erlang 21.3" +on: + push: + repository_dispatch: + types: + - new-commit-to-dep-release-branch +jobs: + # vim:sw=2:et: + checks: + name: checks + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CHECK RABBITMQ COMPONENTS + # https://github.community/t5/GitHub-Actions/How-can-I-set-an-expression-as-an-environment-variable-at/m-p/41804/highlight/true#M4751 + id: ref + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + echo "::set-output name=branch_or_tag_name::$branch_or_tag_name" + make check-rabbitmq-components.mk base_rmq_ref=v3.7.x current_rmq_ref=$branch_or_tag_name + # https://help.github.com/en/actions/configuring-and-managing-workflows/caching-dependencies-to-speed-up-workflows + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RESOLVE & COMPILE DEPS + run: | + make deps test-deps base_rmq_ref=v3.7.x current_rmq_ref=${{ steps.ref.outputs.branch_or_tag_name }} + echo "Capture versions of the RabbitMQ components used in this workflow..." + make rabbit-rabbitmq-deps.mk + mv rabbit-rabbitmq-deps.mk deps/ + echo "Remove directories not used in the subsequent jobs..." + rm -fr deps/*/{.git,test} + - name: UPLOAD DEPS VERSIONS + uses: actions/upload-artifact@v2-preview + with: + name: rabbit-rabbitmq-deps.mk + path: deps/rabbit-rabbitmq-deps.mk + - name: CHECK CROSS REFERENCES + run: | + make xref base_rmq_ref=v3.7.x current_rmq_ref=${{ steps.ref.outputs.branch_or_tag_name }} + - name: COMPILE FOR TEST + run: | + make test-build base_rmq_ref=v3.7.x current_rmq_ref=${{ steps.ref.outputs.branch_or_tag_name }} + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: PREPARE SECONDARY UMBRELLA COPIES + if: success() && 'oldest' == 'oldest' + run: | + # ---------------------------------------------------------- + # CAUTION: + # The same script must be copied to `03-CT_SUITE.yaml`. It is used to + # recreate the umbrellas if the cache restore fails. + # ---------------------------------------------------------- + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + # vim:sw=2:et: + dialyzer: + name: dialyzer + needs: [checks] + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + if: success() && 'oldest' == 'latest' + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + if: success() && 'oldest' == 'latest' + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + if: success() && 'oldest' == 'latest' + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: CACHE DIALYZER PLT + if: success() && 'oldest' == 'latest' + uses: actions/cache@v1 + with: + path: .rabbit.plt + key: plt-rabbit-erlang-21.3-g${{ github.sha }} + - name: RUN DIALYZER + if: success() && 'oldest' == 'latest' + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + make dialyze \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= + # vim:sw=2:et: + eunit: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: eunit + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + ! test -d ebin || touch ebin/* + branch_or_tag_name=${GITHUB_REF#refs/*/} + make eunit \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + # vim:sw=2:et: + ct-amqqueue_backward_compatibility: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-amqqueue_backward_compatibility + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-amqqueue_backward_compatibility \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-amqqueue_backward_compatibility \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-amqqueue_backward_compatibility-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-authn_authz_context_propagation: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-authn_authz_context_propagation + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-authn_authz_context_propagation \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-authn_authz_context_propagation \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-authn_authz_context_propagation-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-backing_queue: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-backing_queue + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-backing_queue \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-backing_queue \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-backing_queue-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-channel_interceptor: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-channel_interceptor + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-channel_interceptor \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-channel_interceptor \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-channel_interceptor-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-channel_operation_timeout: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-channel_operation_timeout + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-channel_operation_timeout \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-channel_operation_timeout \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-channel_operation_timeout-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-cluster: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-cluster + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-cluster \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-cluster \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-cluster-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-cluster_formation_locking: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-cluster_formation_locking + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-cluster_formation_locking \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-cluster_formation_locking \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-cluster_formation_locking-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-cluster_rename: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-cluster_rename + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-cluster_rename \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-cluster_rename \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-cluster_rename-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-clustering_management: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-clustering_management + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-clustering_management \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-clustering_management \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-clustering_management-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-config_schema: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-config_schema + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-config_schema \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-config_schema \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-config_schema-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-confirms_rejects: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-confirms_rejects + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-confirms_rejects \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-confirms_rejects \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-confirms_rejects-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-crashing_queues: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-crashing_queues + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-crashing_queues \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-crashing_queues \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-crashing_queues-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-credential_validation: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-credential_validation + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-credential_validation \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-credential_validation \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-credential_validation-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-disconnect_detected_during_alarm: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-disconnect_detected_during_alarm + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-disconnect_detected_during_alarm \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-disconnect_detected_during_alarm \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-disconnect_detected_during_alarm-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-dynamic_ha: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-dynamic_ha + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-dynamic_ha \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-dynamic_ha \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-dynamic_ha-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-eager_sync: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-eager_sync + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-eager_sync \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-eager_sync \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-eager_sync-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-feature_flags: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-feature_flags + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-feature_flags \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-feature_flags \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-feature_flags-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-gm: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-gm + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-gm \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-gm \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-gm-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-health_check: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-health_check + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-health_check \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-health_check \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-health_check-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-lazy_queue: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-lazy_queue + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-lazy_queue \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-lazy_queue \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-lazy_queue-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-list_consumers_sanity_check: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-list_consumers_sanity_check + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-list_consumers_sanity_check \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-list_consumers_sanity_check \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-list_consumers_sanity_check-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-list_queues_online_and_offline: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-list_queues_online_and_offline + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-list_queues_online_and_offline \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-list_queues_online_and_offline \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-list_queues_online_and_offline-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-many_node_ha: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-many_node_ha + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-many_node_ha \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-many_node_ha \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-many_node_ha-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-metrics: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-metrics + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-metrics \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-metrics \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-metrics-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-mirrored_supervisor: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-mirrored_supervisor + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-mirrored_supervisor \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-mirrored_supervisor \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-mirrored_supervisor-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-msg_store: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-msg_store + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-msg_store \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-msg_store \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-msg_store-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-peer_discovery_dns: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-peer_discovery_dns + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-peer_discovery_dns \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-peer_discovery_dns \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-peer_discovery_dns-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-per_user_connection_tracking: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-per_user_connection_tracking + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-per_user_connection_tracking \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-per_user_connection_tracking \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-per_user_connection_tracking-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-per_vhost_connection_limit: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-per_vhost_connection_limit + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-per_vhost_connection_limit \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-per_vhost_connection_limit \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-per_vhost_connection_limit-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-per_vhost_connection_limit_partitions: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-per_vhost_connection_limit_partitions + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-per_vhost_connection_limit_partitions \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-per_vhost_connection_limit_partitions \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-per_vhost_connection_limit_partitions-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-per_vhost_msg_store: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-per_vhost_msg_store + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-per_vhost_msg_store \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-per_vhost_msg_store \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-per_vhost_msg_store-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-per_vhost_queue_limit: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-per_vhost_queue_limit + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-per_vhost_queue_limit \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-per_vhost_queue_limit \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-per_vhost_queue_limit-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-plugin_versioning: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-plugin_versioning + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-plugin_versioning \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-plugin_versioning \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-plugin_versioning-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-policy: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-policy + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-policy \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-policy \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-policy-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-priority_queue: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-priority_queue + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-priority_queue \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-priority_queue \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-priority_queue-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-priority_queue_recovery: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-priority_queue_recovery + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-priority_queue_recovery \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-priority_queue_recovery \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-priority_queue_recovery-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-proxy_protocol: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-proxy_protocol + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-proxy_protocol \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-proxy_protocol \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-proxy_protocol-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-queue_master_location: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-queue_master_location + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-queue_master_location \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-queue_master_location \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-queue_master_location-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-rabbit_core_metrics_gc: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-rabbit_core_metrics_gc + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-rabbit_core_metrics_gc \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-rabbit_core_metrics_gc \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-rabbit_core_metrics_gc-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-rabbitmqctl_integration: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-rabbitmqctl_integration + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-rabbitmqctl_integration \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-rabbitmqctl_integration \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-rabbitmqctl_integration-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-rabbitmqctl_shutdown: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-rabbitmqctl_shutdown + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-rabbitmqctl_shutdown \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-rabbitmqctl_shutdown \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-rabbitmqctl_shutdown-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-signal_handling: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-signal_handling + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-signal_handling \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-signal_handling \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-signal_handling-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-simple_ha: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-simple_ha + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-simple_ha \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-simple_ha \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-simple_ha-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-sup_delayed_restart: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-sup_delayed_restart + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-sup_delayed_restart \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-sup_delayed_restart \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-sup_delayed_restart-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-sync_detection: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-sync_detection + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-sync_detection \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-sync_detection \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-sync_detection-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-term_to_binary_compat_prop: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-term_to_binary_compat_prop + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-term_to_binary_compat_prop \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-term_to_binary_compat_prop \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-term_to_binary_compat_prop-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-topic_permission: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-topic_permission + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-topic_permission \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-topic_permission \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-topic_permission-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-unit: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-unit + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-unit \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-unit \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-unit-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-unit_inbroker_non_parallel: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-unit_inbroker_non_parallel + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-unit_inbroker_non_parallel \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-unit_inbroker_non_parallel \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-unit_inbroker_non_parallel-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-unit_inbroker_parallel: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-unit_inbroker_parallel + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-unit_inbroker_parallel \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-unit_inbroker_parallel \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-unit_inbroker_parallel-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-unit_log_config: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-unit_log_config + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-unit_log_config \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-unit_log_config \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-unit_log_config-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-vhost: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-vhost + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-vhost \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-vhost \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-vhost-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-worker_pool: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-worker_pool + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 21.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-worker_pool \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'oldest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-21.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'oldest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'oldest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-worker_pool \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-worker_pool-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + capture-tested-deps-versions: + needs: + - dialyzer + - eunit + - ct-amqqueue_backward_compatibility + - ct-authn_authz_context_propagation + - ct-backing_queue + - ct-channel_interceptor + - ct-channel_operation_timeout + - ct-cluster + - ct-cluster_formation_locking + - ct-cluster_rename + - ct-clustering_management + - ct-config_schema + - ct-confirms_rejects + - ct-crashing_queues + - ct-credential_validation + - ct-disconnect_detected_during_alarm + - ct-dynamic_ha + - ct-eager_sync + - ct-feature_flags + - ct-gm + - ct-health_check + - ct-lazy_queue + - ct-list_consumers_sanity_check + - ct-list_queues_online_and_offline + - ct-many_node_ha + - ct-metrics + - ct-mirrored_supervisor + - ct-msg_store + - ct-peer_discovery_dns + - ct-per_user_connection_tracking + - ct-per_vhost_connection_limit + - ct-per_vhost_connection_limit_partitions + - ct-per_vhost_msg_store + - ct-per_vhost_queue_limit + - ct-plugin_versioning + - ct-policy + - ct-priority_queue + - ct-priority_queue_recovery + - ct-proxy_protocol + - ct-queue_master_location + - ct-rabbit_core_metrics_gc + - ct-rabbitmqctl_integration + - ct-rabbitmqctl_shutdown + - ct-signal_handling + - ct-simple_ha + - ct-sup_delayed_restart + - ct-sync_detection + - ct-term_to_binary_compat_prop + - ct-topic_permission + - ct-unit + - ct-unit_inbroker_non_parallel + - ct-unit_inbroker_parallel + - ct-unit_log_config + - ct-vhost + - ct-worker_pool + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-21.3_git-${{ github.sha }}_deps + - name: FORMAT GIT REF + # https://github.community/t5/GitHub-Actions/How-can-I-set-an-expression-as-an-environment-variable-at/m-p/41804/highlight/true#M4751 + id: ref + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + echo "::set-output name=branch_or_tag_name::$branch_or_tag_name" + - name: UPLOAD TO S3 + if: github.ref == 'refs/heads/v3.7.x' + # https://github.com/marketplace/actions/s3-file-upload + uses: zdurham/s3-upload-github-action@master + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_REGION: ${{ secrets.AWS_REGION }} + FILE: deps/rabbit-rabbitmq-deps.mk + S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }} + S3_KEY: rabbitmq-server/${{ steps.ref.outputs.branch_or_tag_name }}/${{ github.run_id }}/otp-21.3/rabbit-rabbitmq-deps.mk diff --git a/.github/workflows/test-erlang-otp-22.3.yaml b/.github/workflows/test-erlang-otp-22.3.yaml new file mode 100644 index 0000000000..caa1e6ac65 --- /dev/null +++ b/.github/workflows/test-erlang-otp-22.3.yaml @@ -0,0 +1,5606 @@ +# vim:sw=2:et: +# https://help.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow +name: "Test - Erlang 22.3" +on: + push: + repository_dispatch: + types: + - new-commit-to-dep-release-branch +jobs: + # vim:sw=2:et: + checks: + name: checks + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CHECK RABBITMQ COMPONENTS + # https://github.community/t5/GitHub-Actions/How-can-I-set-an-expression-as-an-environment-variable-at/m-p/41804/highlight/true#M4751 + id: ref + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + echo "::set-output name=branch_or_tag_name::$branch_or_tag_name" + make check-rabbitmq-components.mk base_rmq_ref=v3.7.x current_rmq_ref=$branch_or_tag_name + # https://help.github.com/en/actions/configuring-and-managing-workflows/caching-dependencies-to-speed-up-workflows + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RESOLVE & COMPILE DEPS + run: | + make deps test-deps base_rmq_ref=v3.7.x current_rmq_ref=${{ steps.ref.outputs.branch_or_tag_name }} + echo "Capture versions of the RabbitMQ components used in this workflow..." + make rabbit-rabbitmq-deps.mk + mv rabbit-rabbitmq-deps.mk deps/ + echo "Remove directories not used in the subsequent jobs..." + rm -fr deps/*/{.git,test} + - name: UPLOAD DEPS VERSIONS + uses: actions/upload-artifact@v2-preview + with: + name: rabbit-rabbitmq-deps.mk + path: deps/rabbit-rabbitmq-deps.mk + - name: CHECK CROSS REFERENCES + run: | + make xref base_rmq_ref=v3.7.x current_rmq_ref=${{ steps.ref.outputs.branch_or_tag_name }} + - name: COMPILE FOR TEST + run: | + make test-build base_rmq_ref=v3.7.x current_rmq_ref=${{ steps.ref.outputs.branch_or_tag_name }} + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: PREPARE SECONDARY UMBRELLA COPIES + if: success() && 'latest' == 'oldest' + run: | + # ---------------------------------------------------------- + # CAUTION: + # The same script must be copied to `03-CT_SUITE.yaml`. It is used to + # recreate the umbrellas if the cache restore fails. + # ---------------------------------------------------------- + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + # vim:sw=2:et: + dialyzer: + name: dialyzer + needs: [checks] + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + if: success() && 'latest' == 'latest' + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + if: success() && 'latest' == 'latest' + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + if: success() && 'latest' == 'latest' + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: CACHE DIALYZER PLT + if: success() && 'latest' == 'latest' + uses: actions/cache@v1 + with: + path: .rabbit.plt + key: plt-rabbit-erlang-22.3-g${{ github.sha }} + - name: RUN DIALYZER + if: success() && 'latest' == 'latest' + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + make dialyze \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= + # vim:sw=2:et: + eunit: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: eunit + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + ! test -d ebin || touch ebin/* + branch_or_tag_name=${GITHUB_REF#refs/*/} + make eunit \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + # vim:sw=2:et: + ct-amqqueue_backward_compatibility: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-amqqueue_backward_compatibility + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-amqqueue_backward_compatibility \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-amqqueue_backward_compatibility \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-amqqueue_backward_compatibility-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-authn_authz_context_propagation: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-authn_authz_context_propagation + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-authn_authz_context_propagation \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-authn_authz_context_propagation \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-authn_authz_context_propagation-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-backing_queue: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-backing_queue + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-backing_queue \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-backing_queue \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-backing_queue-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-channel_interceptor: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-channel_interceptor + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-channel_interceptor \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-channel_interceptor \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-channel_interceptor-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-channel_operation_timeout: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-channel_operation_timeout + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-channel_operation_timeout \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-channel_operation_timeout \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-channel_operation_timeout-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-cluster: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-cluster + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-cluster \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-cluster \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-cluster-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-cluster_formation_locking: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-cluster_formation_locking + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-cluster_formation_locking \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-cluster_formation_locking \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-cluster_formation_locking-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-cluster_rename: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-cluster_rename + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-cluster_rename \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-cluster_rename \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-cluster_rename-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-clustering_management: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-clustering_management + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-clustering_management \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-clustering_management \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-clustering_management-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-config_schema: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-config_schema + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-config_schema \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-config_schema \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-config_schema-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-confirms_rejects: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-confirms_rejects + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-confirms_rejects \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-confirms_rejects \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-confirms_rejects-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-crashing_queues: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-crashing_queues + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-crashing_queues \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-crashing_queues \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-crashing_queues-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-credential_validation: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-credential_validation + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-credential_validation \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-credential_validation \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-credential_validation-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-disconnect_detected_during_alarm: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-disconnect_detected_during_alarm + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-disconnect_detected_during_alarm \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-disconnect_detected_during_alarm \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-disconnect_detected_during_alarm-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-dynamic_ha: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-dynamic_ha + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-dynamic_ha \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-dynamic_ha \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-dynamic_ha-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-eager_sync: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-eager_sync + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-eager_sync \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-eager_sync \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-eager_sync-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-feature_flags: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-feature_flags + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-feature_flags \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-feature_flags \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-feature_flags-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-gm: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-gm + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-gm \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-gm \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-gm-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-health_check: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-health_check + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-health_check \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-health_check \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-health_check-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-lazy_queue: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-lazy_queue + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-lazy_queue \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-lazy_queue \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-lazy_queue-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-list_consumers_sanity_check: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-list_consumers_sanity_check + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-list_consumers_sanity_check \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-list_consumers_sanity_check \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-list_consumers_sanity_check-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-list_queues_online_and_offline: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-list_queues_online_and_offline + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-list_queues_online_and_offline \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-list_queues_online_and_offline \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-list_queues_online_and_offline-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-many_node_ha: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-many_node_ha + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-many_node_ha \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-many_node_ha \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-many_node_ha-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-metrics: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-metrics + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-metrics \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-metrics \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-metrics-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-mirrored_supervisor: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-mirrored_supervisor + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-mirrored_supervisor \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-mirrored_supervisor \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-mirrored_supervisor-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-msg_store: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-msg_store + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-msg_store \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-msg_store \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-msg_store-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-peer_discovery_dns: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-peer_discovery_dns + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-peer_discovery_dns \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-peer_discovery_dns \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-peer_discovery_dns-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-per_user_connection_tracking: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-per_user_connection_tracking + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-per_user_connection_tracking \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-per_user_connection_tracking \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-per_user_connection_tracking-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-per_vhost_connection_limit: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-per_vhost_connection_limit + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-per_vhost_connection_limit \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-per_vhost_connection_limit \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-per_vhost_connection_limit-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-per_vhost_connection_limit_partitions: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-per_vhost_connection_limit_partitions + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-per_vhost_connection_limit_partitions \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-per_vhost_connection_limit_partitions \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-per_vhost_connection_limit_partitions-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-per_vhost_msg_store: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-per_vhost_msg_store + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-per_vhost_msg_store \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-per_vhost_msg_store \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-per_vhost_msg_store-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-per_vhost_queue_limit: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-per_vhost_queue_limit + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-per_vhost_queue_limit \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-per_vhost_queue_limit \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-per_vhost_queue_limit-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-plugin_versioning: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-plugin_versioning + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-plugin_versioning \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-plugin_versioning \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-plugin_versioning-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-policy: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-policy + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-policy \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-policy \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-policy-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-priority_queue: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-priority_queue + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-priority_queue \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-priority_queue \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-priority_queue-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-priority_queue_recovery: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-priority_queue_recovery + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-priority_queue_recovery \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-priority_queue_recovery \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-priority_queue_recovery-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-proxy_protocol: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-proxy_protocol + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-proxy_protocol \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-proxy_protocol \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-proxy_protocol-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-queue_master_location: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-queue_master_location + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-queue_master_location \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-queue_master_location \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-queue_master_location-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-rabbit_core_metrics_gc: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-rabbit_core_metrics_gc + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-rabbit_core_metrics_gc \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-rabbit_core_metrics_gc \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-rabbit_core_metrics_gc-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-rabbitmqctl_integration: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-rabbitmqctl_integration + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-rabbitmqctl_integration \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-rabbitmqctl_integration \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-rabbitmqctl_integration-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-rabbitmqctl_shutdown: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-rabbitmqctl_shutdown + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-rabbitmqctl_shutdown \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-rabbitmqctl_shutdown \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-rabbitmqctl_shutdown-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-signal_handling: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-signal_handling + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-signal_handling \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-signal_handling \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-signal_handling-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-simple_ha: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-simple_ha + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-simple_ha \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-simple_ha \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-simple_ha-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-sup_delayed_restart: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-sup_delayed_restart + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-sup_delayed_restart \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-sup_delayed_restart \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-sup_delayed_restart-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-sync_detection: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-sync_detection + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-sync_detection \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-sync_detection \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-sync_detection-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-term_to_binary_compat_prop: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-term_to_binary_compat_prop + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-term_to_binary_compat_prop \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-term_to_binary_compat_prop \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-term_to_binary_compat_prop-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-topic_permission: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-topic_permission + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-topic_permission \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-topic_permission \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-topic_permission-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-unit: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-unit + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-unit \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-unit \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-unit-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-unit_inbroker_non_parallel: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-unit_inbroker_non_parallel + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-unit_inbroker_non_parallel \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-unit_inbroker_non_parallel \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-unit_inbroker_non_parallel-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-unit_inbroker_parallel: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-unit_inbroker_parallel + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-unit_inbroker_parallel \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-unit_inbroker_parallel \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-unit_inbroker_parallel-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-unit_log_config: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-unit_log_config + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-unit_log_config \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-unit_log_config \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-unit_log_config-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-vhost: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-vhost + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-vhost \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-vhost \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-vhost-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + ct-worker_pool: + needs: [checks] + # https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#contexts + name: ct-worker_pool + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + # https://github.com/marketplace/actions/setup-elixir + - name: CONFIGURE OTP & ELIXIR + uses: actions/setup-elixir@v1 + with: + otp-version: 22.3 + # https://github.com/elixir-lang/elixir/releases + elixir-version: 1.8.0 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: RUN TESTS + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + ! test -d ebin || touch ebin/* + make ct-worker_pool \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 + - name: CACHE SECONDARY UMBRELLAS + if: success() && 'latest' == 'oldest' + uses: actions/cache@v1 + with: + path: umbrellas + key: secondary-umbrellas-v3.7.0-erlang-22.3-rev3 + - name: VERIFY SECONDARY UMBRELLA COPIES (in case of cache restore failure) + if: success() && 'latest' == 'oldest' + run: | + set -x + for version in v3.7.0; do + umbrella="umbrellas/$version" + if ! test -d "$umbrella" || + ! make -C "$umbrella/deps/rabbit" test-dist; then + rm -rf "$umbrella" + + # Fetch the master Umbrella; the final umbrellas are created from + # the master copy. + if ! test -d umbrellas/master; then + git config --global advice.detachedHead false + git clone \ + https://github.com/rabbitmq/rabbitmq-public-umbrella.git \ + umbrellas/master + make -C umbrellas/master co # To get RabbitMQ components. + fi + + # We copy the master Umbrella and checkout the appropriate tag. + cp -a umbrellas/master "$umbrella" + git -C "$umbrella" checkout "v3.7.x" + make -C "$umbrella" up BRANCH="$version" + # To remove third-party deps which were checked out when the + # projects were on the `master` branch. Thus, possibly not the + # version pinning we expect. We update the Umbrella one last time + # to fetch the correct third-party deps. + make -C "$umbrella" clean-3rd-party-repos + make -C "$umbrella" up + make -C "$umbrella/deps/rabbit" test-dist + rm -fr "$umbrella"/deps/*/{.git,test} "$umbrella"/.git + fi + done + rm -fr umbrellas/master + - name: RUN TESTS [mixed-versions] + if: success() && 'latest' == 'oldest' + run: | + set -x + branch_or_tag_name=${GITHUB_REF#refs/*/} + for umbrella in umbrellas/*; do + test -d "$umbrella" + printf '\n\033[1;32mMixing clusters with RabbitMQ %s\033[0m' \ + $(basename "$umbrella") + make distclean-ct ct-worker_pool \ + base_rmq_ref=v3.7.x \ + current_rmq_ref=$branch_or_tag_name \ + FULL= \ + FAIL_FAST=1 \ + SKIP_AS_ERROR=1 \ + SECONDARY_UMBRELLA=$PWD/$umbrella \ + RABBITMQ_FEATURE_FLAGS= + done + - name: ON FAILURE ARCHIVE TESTS LOGS + if: failure() + run: | + make ct-logs-archive + - name: ON FAILURE UPLOAD TESTS LOGS ARTIFACT + # https://github.com/marketplace/actions/upload-artifact + uses: actions/upload-artifact@v2-preview + if: failure() + with: + name: ct-worker_pool-logs + path: "*-ct-logs-*.tar.xz" + # vim:sw=2:et: + capture-tested-deps-versions: + needs: + - dialyzer + - eunit + - ct-amqqueue_backward_compatibility + - ct-authn_authz_context_propagation + - ct-backing_queue + - ct-channel_interceptor + - ct-channel_operation_timeout + - ct-cluster + - ct-cluster_formation_locking + - ct-cluster_rename + - ct-clustering_management + - ct-config_schema + - ct-confirms_rejects + - ct-crashing_queues + - ct-credential_validation + - ct-disconnect_detected_during_alarm + - ct-dynamic_ha + - ct-eager_sync + - ct-feature_flags + - ct-gm + - ct-health_check + - ct-lazy_queue + - ct-list_consumers_sanity_check + - ct-list_queues_online_and_offline + - ct-many_node_ha + - ct-metrics + - ct-mirrored_supervisor + - ct-msg_store + - ct-peer_discovery_dns + - ct-per_user_connection_tracking + - ct-per_vhost_connection_limit + - ct-per_vhost_connection_limit_partitions + - ct-per_vhost_msg_store + - ct-per_vhost_queue_limit + - ct-plugin_versioning + - ct-policy + - ct-priority_queue + - ct-priority_queue_recovery + - ct-proxy_protocol + - ct-queue_master_location + - ct-rabbit_core_metrics_gc + - ct-rabbitmqctl_integration + - ct-rabbitmqctl_shutdown + - ct-signal_handling + - ct-simple_ha + - ct-sup_delayed_restart + - ct-sync_detection + - ct-term_to_binary_compat_prop + - ct-topic_permission + - ct-unit + - ct-unit_inbroker_non_parallel + - ct-unit_inbroker_parallel + - ct-unit_log_config + - ct-vhost + - ct-worker_pool + runs-on: ubuntu-18.04 + steps: + - name: CHECKOUT REPOSITORY + uses: actions/checkout@v2 + - name: CACHE DEPS + uses: actions/cache@v1 + with: + path: deps + key: otp-22.3_git-${{ github.sha }}_deps + - name: FORMAT GIT REF + # https://github.community/t5/GitHub-Actions/How-can-I-set-an-expression-as-an-environment-variable-at/m-p/41804/highlight/true#M4751 + id: ref + run: | + branch_or_tag_name=${GITHUB_REF#refs/*/} + echo "::set-output name=branch_or_tag_name::$branch_or_tag_name" + - name: UPLOAD TO S3 + if: github.ref == 'refs/heads/v3.7.x' + # https://github.com/marketplace/actions/s3-file-upload + uses: zdurham/s3-upload-github-action@master + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_REGION: ${{ secrets.AWS_REGION }} + FILE: deps/rabbit-rabbitmq-deps.mk + S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }} + S3_KEY: rabbitmq-server/${{ steps.ref.outputs.branch_or_tag_name }}/${{ github.run_id }}/otp-22.3/rabbit-rabbitmq-deps.mk |