name: Test Mixed Version Clusters
on:
  push:
    branches:
    - v4.0.x
    - v3.13.x
    - bump-otp-*
    - bump-elixir-*
    - bump-rbe-*
    - bump-rules_erlang
    paths:
    - deps/**
    - scripts/**
    - Makefile
    - plugins.mk
    - rabbitmq-components.mk
    - .bazelrc
    - .bazelversion
    - BUILD.*
    - '*.bzl'
    - '*.bazel'
    - .github/workflows/test-mixed-versions.yaml
concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
  cancel-in-progress: true
jobs:
  ensure-mixed-version-archive:
    runs-on: ubuntu-22.04
    steps:
    - name: CHECKOUT REPOSITORY
      uses: actions/checkout@v4
      with:
        path: primary-umbrella
    - name: CHECK FOR ARCHIVE ON S3
      id: check
      working-directory: primary-umbrella
      run: |
        set -u

        ARCHIVE_URL="$(grep -Eo 'https://rabbitmq-github-actions.s3.eu-west-1.amazonaws.com.*.tar.xz' bazel/bzlmod/secondary_umbrella.bzl)"
        echo "ARCHIVE_URL: ${ARCHIVE_URL}"

        curl -LO "${ARCHIVE_URL}"

        if xzcat --test package-generic-unix-for-mixed-version-testing-v*.tar.xz; then
          exists=true
        else
          exists=false
        fi
        echo "exists=${exists}" | tee $GITHUB_ENV

        OTP_VERSION=${ARCHIVE_URL#*secondary-umbrellas/}
        OTP_VERSION=${OTP_VERSION%*/package-generic-unix-for-mixed-version-testing-v*.tar.xz}
        echo "otp_version=${OTP_VERSION}" | tee -a $GITHUB_OUTPUT

        VERSION=${ARCHIVE_URL#*package-generic-unix-for-mixed-version-testing-v}
        VERSION=${VERSION%*.tar.xz}
        echo "version=${VERSION}" | tee -a $GITHUB_OUTPUT
    - name: CHECKOUT REPOSITORY (MIXED VERSION)
      if: env.exists != 'true'
      uses: actions/checkout@v4
      with:
        ref: v${{ steps.check.outputs.version }}
        path: secondary-umbrella
    - name: CONFIGURE OTP & ELIXIR
      if: env.exists != 'true'
      uses: erlef/setup-beam@v1.17
      with:
        otp-version: ${{ steps.check.outputs.otp_version }}
        elixir-version: 1.15
        hexpm-mirrors: |
          https://builds.hex.pm
          https://cdn.jsdelivr.net/hex
    - name: AUTHENTICATE TO GOOGLE CLOUD
      uses: google-github-actions/auth@v2.1.7
      with:
        credentials_json: ${{ secrets.REMOTE_CACHE_CREDENTIALS_JSON }}
    - name: BUILD SECONDARY UMBRELLA ARCHIVE
      if: env.exists != 'true'
      working-directory: secondary-umbrella
      run: |
        if [ -n "${{ secrets.REMOTE_CACHE_BUCKET_NAME_MIXED }}" ]; then
        cat << EOF >> user.bazelrc
          build --remote_cache=https://storage.googleapis.com/${{ secrets.REMOTE_CACHE_BUCKET_NAME_MIXED }}
          build --google_default_credentials

          build --remote_download_toplevel
        EOF
        fi

        sed -i"_orig" -E "/APP_VERSION/ s/3\.[0-9]+\.[0-9]+/${{ steps.check.outputs.version }}/" rabbitmq.bzl
        bazelisk build :package-generic-unix \
          --test_build \
          --verbose_failures

        OUTPUT_DIR=${{ github.workspace }}/output
        mkdir -p ${OUTPUT_DIR}/${{ steps.check.outputs.otp_version }}
        cp \
          bazel-bin/package-generic-unix.tar.xz \
          ${OUTPUT_DIR}/${{ steps.check.outputs.otp_version }}/package-generic-unix-for-mixed-version-testing-v${{ steps.check.outputs.version }}.tar.xz
    - name: UPLOAD THE ARCHIVE TO S3
      if: env.exists != 'true'
      uses: jakejarvis/s3-sync-action@v0.5.1
      with:
        args: --acl public-read --follow-symlinks
      env:
        AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
        AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
        AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
        AWS_REGION: ${{ secrets.AWS_REGION }}
        SOURCE_DIR: output
        DEST_DIR: secondary-umbrellas
  check-workflow:
    needs: ensure-mixed-version-archive
    runs-on: ubuntu-latest
    outputs:
      repo_cache_key: ${{ steps.repo-cache-key.outputs.value }}
    steps:
    - name: CHECKOUT REPOSITORY
      uses: actions/checkout@v4
    - name: SETUP ERLANG/ELIXIR
      uses: erlef/setup-beam@v1
      with:
        otp-version: 26
        elixir-version: 1.15
        hexpm-mirrors: |
          https://builds.hex.pm
          https://cdn.jsdelivr.net/hex
    - name: ENSURE WORKFLOWS ARE UP TO DATE
      run: |
        mkdir local-bin/
        curl -L https://carvel.dev/install.sh | K14SIO_INSTALL_BIN_DIR=local-bin bash
        make actions-workflows YTT=$PWD/local-bin/ytt
        git diff --exit-code
    - name: COMPUTE REPO CACHE KEY
      id: repo-cache-key
      run: |
        echo "value=bazel-repo-cache-${{ hashFiles('MODULE.bazel') }}" | tee -a $GITHUB_OUTPUT
  test-amqp10_client-mixed:
    needs: check-workflow
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: amqp10_client
    secrets: inherit
  test-amqp10_common-mixed:
    needs: check-workflow
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: amqp10_common
    secrets: inherit
  test-amqp_client-mixed:
    needs: check-workflow
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: amqp_client
    secrets: inherit
  test-oauth2_client-mixed:
    needs: check-workflow
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: oauth2_client
    secrets: inherit
  test-rabbit_common-mixed:
    needs: check-workflow
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbit_common
    secrets: inherit
  test-rabbitmq_ct_client_helpers-mixed:
    needs: check-workflow
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_ct_client_helpers
    secrets: inherit
  test-rabbitmq_ct_helpers-mixed:
    needs: check-workflow
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_ct_helpers
    secrets: inherit
  test-rabbitmq_stream_common-mixed:
    needs: check-workflow
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_stream_common
    secrets: inherit
  test-trust_store_http-mixed:
    needs: check-workflow
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: trust_store_http
    secrets: inherit
  test-rabbit-0-mixed:
    needs:
    - check-workflow
    - test-amqp10_client-mixed
    - test-amqp10_common-mixed
    - test-amqp_client-mixed
    - test-oauth2_client-mixed
    - test-rabbit_common-mixed
    - test-rabbitmq_ct_client_helpers-mixed
    - test-rabbitmq_ct_helpers-mixed
    - test-rabbitmq_stream_common-mixed
    - test-trust_store_http-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbit
      shard_index: 0
      shard_count: 10
    secrets: inherit
  test-rabbit-1-mixed:
    needs:
    - check-workflow
    - test-amqp10_client-mixed
    - test-amqp10_common-mixed
    - test-amqp_client-mixed
    - test-oauth2_client-mixed
    - test-rabbit_common-mixed
    - test-rabbitmq_ct_client_helpers-mixed
    - test-rabbitmq_ct_helpers-mixed
    - test-rabbitmq_stream_common-mixed
    - test-trust_store_http-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbit
      shard_index: 1
      shard_count: 10
    secrets: inherit
  test-rabbit-2-mixed:
    needs:
    - check-workflow
    - test-amqp10_client-mixed
    - test-amqp10_common-mixed
    - test-amqp_client-mixed
    - test-oauth2_client-mixed
    - test-rabbit_common-mixed
    - test-rabbitmq_ct_client_helpers-mixed
    - test-rabbitmq_ct_helpers-mixed
    - test-rabbitmq_stream_common-mixed
    - test-trust_store_http-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbit
      shard_index: 2
      shard_count: 10
    secrets: inherit
  test-rabbit-3-mixed:
    needs:
    - check-workflow
    - test-amqp10_client-mixed
    - test-amqp10_common-mixed
    - test-amqp_client-mixed
    - test-oauth2_client-mixed
    - test-rabbit_common-mixed
    - test-rabbitmq_ct_client_helpers-mixed
    - test-rabbitmq_ct_helpers-mixed
    - test-rabbitmq_stream_common-mixed
    - test-trust_store_http-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbit
      shard_index: 3
      shard_count: 10
    secrets: inherit
  test-rabbit-4-mixed:
    needs:
    - check-workflow
    - test-amqp10_client-mixed
    - test-amqp10_common-mixed
    - test-amqp_client-mixed
    - test-oauth2_client-mixed
    - test-rabbit_common-mixed
    - test-rabbitmq_ct_client_helpers-mixed
    - test-rabbitmq_ct_helpers-mixed
    - test-rabbitmq_stream_common-mixed
    - test-trust_store_http-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbit
      shard_index: 4
      shard_count: 10
    secrets: inherit
  test-rabbit-5-mixed:
    needs:
    - check-workflow
    - test-amqp10_client-mixed
    - test-amqp10_common-mixed
    - test-amqp_client-mixed
    - test-oauth2_client-mixed
    - test-rabbit_common-mixed
    - test-rabbitmq_ct_client_helpers-mixed
    - test-rabbitmq_ct_helpers-mixed
    - test-rabbitmq_stream_common-mixed
    - test-trust_store_http-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbit
      shard_index: 5
      shard_count: 10
    secrets: inherit
  test-rabbit-6-mixed:
    needs:
    - check-workflow
    - test-amqp10_client-mixed
    - test-amqp10_common-mixed
    - test-amqp_client-mixed
    - test-oauth2_client-mixed
    - test-rabbit_common-mixed
    - test-rabbitmq_ct_client_helpers-mixed
    - test-rabbitmq_ct_helpers-mixed
    - test-rabbitmq_stream_common-mixed
    - test-trust_store_http-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbit
      shard_index: 6
      shard_count: 10
    secrets: inherit
  test-rabbit-7-mixed:
    needs:
    - check-workflow
    - test-amqp10_client-mixed
    - test-amqp10_common-mixed
    - test-amqp_client-mixed
    - test-oauth2_client-mixed
    - test-rabbit_common-mixed
    - test-rabbitmq_ct_client_helpers-mixed
    - test-rabbitmq_ct_helpers-mixed
    - test-rabbitmq_stream_common-mixed
    - test-trust_store_http-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbit
      shard_index: 7
      shard_count: 10
    secrets: inherit
  test-rabbit-8-mixed:
    needs:
    - check-workflow
    - test-amqp10_client-mixed
    - test-amqp10_common-mixed
    - test-amqp_client-mixed
    - test-oauth2_client-mixed
    - test-rabbit_common-mixed
    - test-rabbitmq_ct_client_helpers-mixed
    - test-rabbitmq_ct_helpers-mixed
    - test-rabbitmq_stream_common-mixed
    - test-trust_store_http-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbit
      shard_index: 8
      shard_count: 10
    secrets: inherit
  test-rabbit-9-mixed:
    needs:
    - check-workflow
    - test-amqp10_client-mixed
    - test-amqp10_common-mixed
    - test-amqp_client-mixed
    - test-oauth2_client-mixed
    - test-rabbit_common-mixed
    - test-rabbitmq_ct_client_helpers-mixed
    - test-rabbitmq_ct_helpers-mixed
    - test-rabbitmq_stream_common-mixed
    - test-trust_store_http-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbit
      shard_index: 9
      shard_count: 10
    secrets: inherit
  test-rabbitmq_cli-mixed:
    needs: check-workflow
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_cli
    secrets: inherit
  test-rabbitmq_amqp_client-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_amqp_client
    secrets: inherit
  test-rabbitmq_amqp1_0-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_amqp1_0
    secrets: inherit
  test-rabbitmq_auth_backend_cache-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_auth_backend_cache
    secrets: inherit
  test-rabbitmq_auth_backend_http-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_auth_backend_http
    secrets: inherit
  test-rabbitmq_auth_backend_ldap-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_auth_backend_ldap
    secrets: inherit
  test-rabbitmq_auth_backend_oauth2-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_auth_backend_oauth2
    secrets: inherit
  test-rabbitmq_auth_mechanism_ssl-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_auth_mechanism_ssl
    secrets: inherit
  test-rabbitmq_aws-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_aws
    secrets: inherit
  test-rabbitmq_consistent_hash_exchange-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_consistent_hash_exchange
    secrets: inherit
  test-rabbitmq_event_exchange-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_event_exchange
    secrets: inherit
  test-rabbitmq_federation-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_federation
    secrets: inherit
  test-rabbitmq_federation_management-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_federation_management
    secrets: inherit
  test-rabbitmq_federation_prometheus-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_federation_prometheus
    secrets: inherit
  test-rabbitmq_jms_topic_exchange-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_jms_topic_exchange
    secrets: inherit
  test-rabbitmq_management-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_management
    secrets: inherit
  test-rabbitmq_management_agent-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_management_agent
    secrets: inherit
  test-rabbitmq_mqtt-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_mqtt
    secrets: inherit
  test-rabbitmq_peer_discovery_aws-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_peer_discovery_aws
    secrets: inherit
  test-rabbitmq_peer_discovery_common-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_peer_discovery_common
    secrets: inherit
  test-rabbitmq_peer_discovery_consul-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_peer_discovery_consul
    secrets: inherit
  test-rabbitmq_peer_discovery_etcd-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_peer_discovery_etcd
    secrets: inherit
  test-rabbitmq_peer_discovery_k8s-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_peer_discovery_k8s
    secrets: inherit
  test-rabbitmq_prelaunch-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_prelaunch
    secrets: inherit
  test-rabbitmq_prometheus-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_prometheus
    secrets: inherit
  test-rabbitmq_random_exchange-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_random_exchange
    secrets: inherit
  test-rabbitmq_recent_history_exchange-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_recent_history_exchange
    secrets: inherit
  test-rabbitmq_sharding-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_sharding
    secrets: inherit
  test-rabbitmq_shovel-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_shovel
    secrets: inherit
  test-rabbitmq_shovel_management-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_shovel_management
    secrets: inherit
  test-rabbitmq_shovel_prometheus-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_shovel_prometheus
    secrets: inherit
  test-rabbitmq_stomp-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_stomp
    secrets: inherit
  test-rabbitmq_stream-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_stream
    secrets: inherit
  test-rabbitmq_stream_management-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_stream_management
    secrets: inherit
  test-rabbitmq_top-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_top
    secrets: inherit
  test-rabbitmq_tracing-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_tracing
    secrets: inherit
  test-rabbitmq_trust_store-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_trust_store
    secrets: inherit
  test-rabbitmq_web_dispatch-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_web_dispatch
    secrets: inherit
  test-rabbitmq_web_mqtt-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_web_mqtt
    secrets: inherit
  test-rabbitmq_web_mqtt_examples-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_web_mqtt_examples
    secrets: inherit
  test-rabbitmq_web_stomp-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_web_stomp
    secrets: inherit
  test-rabbitmq_web_stomp_examples-mixed:
    needs:
    - check-workflow
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    uses: ./.github/workflows/test-plugin-mixed.yaml
    with:
      repo_cache_key: ${{ needs.check-workflow.outputs.repo_cache_key }}
      plugin: rabbitmq_web_stomp_examples
    secrets: inherit
  summary-test:
    needs:
    - test-amqp10_client-mixed
    - test-amqp10_common-mixed
    - test-amqp_client-mixed
    - test-oauth2_client-mixed
    - test-rabbit_common-mixed
    - test-rabbitmq_ct_client_helpers-mixed
    - test-rabbitmq_ct_helpers-mixed
    - test-rabbitmq_stream_common-mixed
    - test-trust_store_http-mixed
    - test-rabbitmq_amqp_client-mixed
    - test-rabbitmq_amqp1_0-mixed
    - test-rabbitmq_auth_backend_cache-mixed
    - test-rabbitmq_auth_backend_http-mixed
    - test-rabbitmq_auth_backend_ldap-mixed
    - test-rabbitmq_auth_backend_oauth2-mixed
    - test-rabbitmq_auth_mechanism_ssl-mixed
    - test-rabbitmq_aws-mixed
    - test-rabbitmq_consistent_hash_exchange-mixed
    - test-rabbitmq_event_exchange-mixed
    - test-rabbitmq_federation-mixed
    - test-rabbitmq_federation_management-mixed
    - test-rabbitmq_federation_prometheus-mixed
    - test-rabbitmq_jms_topic_exchange-mixed
    - test-rabbitmq_management-mixed
    - test-rabbitmq_management_agent-mixed
    - test-rabbitmq_mqtt-mixed
    - test-rabbitmq_peer_discovery_aws-mixed
    - test-rabbitmq_peer_discovery_common-mixed
    - test-rabbitmq_peer_discovery_consul-mixed
    - test-rabbitmq_peer_discovery_etcd-mixed
    - test-rabbitmq_peer_discovery_k8s-mixed
    - test-rabbitmq_prelaunch-mixed
    - test-rabbitmq_prometheus-mixed
    - test-rabbitmq_random_exchange-mixed
    - test-rabbitmq_recent_history_exchange-mixed
    - test-rabbitmq_sharding-mixed
    - test-rabbitmq_shovel-mixed
    - test-rabbitmq_shovel_management-mixed
    - test-rabbitmq_shovel_prometheus-mixed
    - test-rabbitmq_stomp-mixed
    - test-rabbitmq_stream-mixed
    - test-rabbitmq_stream_management-mixed
    - test-rabbitmq_top-mixed
    - test-rabbitmq_tracing-mixed
    - test-rabbitmq_trust_store-mixed
    - test-rabbitmq_web_dispatch-mixed
    - test-rabbitmq_web_mqtt-mixed
    - test-rabbitmq_web_mqtt_examples-mixed
    - test-rabbitmq_web_stomp-mixed
    - test-rabbitmq_web_stomp_examples-mixed
    - test-rabbit-0-mixed
    - test-rabbit-1-mixed
    - test-rabbit-2-mixed
    - test-rabbit-3-mixed
    - test-rabbit-4-mixed
    - test-rabbit-5-mixed
    - test-rabbit-6-mixed
    - test-rabbit-7-mixed
    - test-rabbit-8-mixed
    - test-rabbit-9-mixed
    - test-rabbitmq_cli-mixed
    runs-on: ubuntu-latest
    steps:
    - name: SUMMARY
      run: |
        cat << 'EOF' | jq -e 'map(.result == "success") | all(.)'
        ${{ toJson(needs) }}
        EOF
