name: Test
on:
  push:
    branches:
      - main
      - v3.13.x
      - v3.12.x
      - v3.11.x
      - bump-otp-for-oci
      - bump-rbe-*
      - bump-rules_erlang
    paths:
      - 'deps/**'
      - 'scripts/**'
      - Makefile
      - plugins.mk
      - rabbitmq-components.mk
      - .bazelrc
      - .bazelversion
      - BUILD.*
      - '*.bzl'
      - '*.bazel'
      - .github/workflows/test.yaml
  pull_request:
concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
  cancel-in-progress: true
jobs:
  test:
    name: Test
    runs-on: ubuntu-22.04
    strategy:
      fail-fast: false
      matrix:
        otp_version_id:
        - 26
        metadata_store:
          - mnesia
          - khepri
    timeout-minutes: 120
    steps:
    - name: CHECKOUT REPOSITORY
      uses: actions/checkout@v4
    - name: CONFIGURE BAZEL
      run: |
        if [ -n "${{ secrets.BUILDBUDDY_API_KEY }}" ]; then
        cat << EOF >> user.bazelrc
          build:buildbuddy --remote_header=x-buildbuddy-api-key=${{ secrets.BUILDBUDDY_API_KEY }}
        EOF
        fi
        cat << EOF >> user.bazelrc
          build:buildbuddy --build_metadata=ROLE=CI
          build:buildbuddy --build_metadata=VISIBILITY=PUBLIC
          build:buildbuddy --color=yes
        EOF

        bazelisk info release
    #! - name: Setup tmate session
    #!   uses: mxschmitt/action-tmate@v3
    - name: RUN TESTS
      run: |
        sudo sysctl -w net.ipv4.tcp_keepalive_time=60
        sudo ethtool -K eth0 tso off gso off gro off tx off rx off lro off
        bazelisk test //... \
          --config=rbe-${{ matrix.otp_version_id }} \
          --test_env RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} \
          --test_tag_filters=-aws,-docker,-mixed-version-cluster \
          --build_tests_only \
          --verbose_failures
  summary-test:
    needs:
    - test
    runs-on: ubuntu-latest
    steps:
    - name: SUMMARY
      run: |
        echo "SUCCESS"
