name: CI

on:
  push:
  pull_request:

defaults:
  run:
    shell: bash

jobs:

  tests:
    name: Tests
    runs-on: ubuntu-20.04
    strategy:
      matrix:
        php: [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4' ]
        symfony: ['symfony3', 'symfony4', 'symfony5']
        include:
          - php: '8.1'
            symfony: 'symfony6'
          - php: '8.2'
            symfony: 'symfony6'
          - php: '8.3'
            symfony: 'symfony6'
          - php: '8.2'
            symfony: 'symfony7'
          - php: '8.3'
            symfony: 'symfony7'
          - php: '8.4'
            symfony: 'symfony7'
      fail-fast: false
    env:
      MATRIX_PHP: ${{ matrix.php }}
      MATRIX_SYMFONY: ${{ matrix.symfony }}

    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 1
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        env:
          COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          coverage: "none"
          php-version: "${{ matrix.php }}"
          tools: composer
      - name: Install scenario
        run: |
          .scenarios.lock/install "${{ matrix.symfony }}" "${DEPENDENCIES}"
      - name: Add browser drivers
        uses: nanasess/setup-chromedriver@v2
      - name: Run unit tests
        run: |
          vendor/bin/phpunit -v
      - name: Run behat tests
        run: |
          vendor/bin/behat --config=tests/Behat/behat.yml
      - name: Archive logs artifacts
        if: ${{ failure() }}
        uses: actions/upload-artifact@v4
        with:
          name: logs_php-${{ matrix.php }}
          path: |
            logs
