# Testing the code base against the Meilisearch pre-releases
name: Pre-Release Tests

# Will only run for PRs and pushes to bump-meilisearch-v*
on:
  push:
    branches: ['bump-meilisearch-v*']
  pull_request:
    branches: ['bump-meilisearch-v*']

jobs:
  meilisearch-version:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v5

      - name: Grep docker latest rc version of Meilisearch
        id: grep-step
        run: |
          MEILISEARCH_VERSION=$(sh .github/scripts/get-latest-meilisearch-rc.sh)
          echo $MEILISEARCH_VERSION
          echo "version=$MEILISEARCH_VERSION" >> $GITHUB_OUTPUT
    outputs:
      version: ${{ steps.grep-step.outputs.version }}

  tests:
    runs-on: ubuntu-latest
    needs: ['meilisearch-version']
    name: integration-tests-against-rc (PHP ${{ matrix.php-versions }})
    services:
      meilisearch:
        image: getmeili/meilisearch:${{ needs.meilisearch-version.outputs.version }}
        ports:
          - '7700:7700'
        env:
          MEILI_MASTER_KEY: masterKey
          MEILI_NO_ANALYTICS: true
    strategy:
      matrix:
        php-version: ['7.4', '8.0', '8.1', '8.2', '8.3', '8.4']

    steps:
      - name: Checkout code
        uses: actions/checkout@v5

      - name: Install PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-versions }}
          coverage: none

      - name: Validate composer.json and composer.lock
        run: composer validate

      - name: Install dependencies
        uses: ramsey/composer-install@v3

      - name: Run test suite
        run: sh scripts/tests.sh
