name: Ruby SDK test
on: [workflow_call]

jobs:
  test:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        ruby-version: ['3.2']

    steps:
      - uses: actions/checkout@v4
      - name: Set up Ruby ${{ matrix.ruby-version }}
        uses: ruby/setup-ruby@d4526a55538b775af234ba4af27118ed6f8f6677
        with:
          ruby-version: ${{ matrix.ruby-version }}
      - name: Set up Python 3.8
        uses: actions/setup-python@v5
        with:
          python-version: "3.8"
      - name: Start MotoServer
        run: |
          pip install build
          python -m build
          docker run --rm -t --name motoserver -e TEST_SERVER_MODE=true -e AWS_SECRET_ACCESS_KEY=server_secret -e AWS_ACCESS_KEY_ID=server_key -v `pwd`:/moto -p 5000:5000 -v /var/run/docker.sock:/var/run/docker.sock python:3.10-slim /moto/scripts/ci_moto_server.sh &
          python scripts/ci_wait_for_server.py
      - name: Install dependencies
        run: cd other_langs/tests_ruby && bundle install
      - name: Run tests
        env:
          AWS_ENDPOINT_URL: "http://localhost:5000"
        run: |
          mkdir ~/.aws && touch ~/.aws/credentials && echo -e "[default]\naws_access_key_id = test\naws_secret_access_key = test" > ~/.aws/credentials
          cd other_langs/tests_ruby && ruby test/*