name: 'Quality'

on:
  push:
    branches: ['*']

jobs:
  phpcs:
    name: 'PHP CodeSniffer'
    runs-on: 'ubuntu-latest'

    strategy:
      matrix:
        php-version: ['8.1']

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

      - name: 'Checkout sources'
        uses: 'actions/checkout@v3'

      - name: 'Install dependencies'
        run: 'composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist'

      - name: 'Execute PHP CodeSniffer'
        run: 'vendor/bin/phpcs -p'

  phpstan:
    name: 'PHPStan'
    runs-on: 'ubuntu-latest'

    strategy:
      matrix:
        php-version: ['8.1']

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

      - name: 'Checkout sources'
        uses: 'actions/checkout@v3'

      - name: 'Install dependencies'
        run: 'composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist'

      - name: 'Execute PHPStan'
        run: 'vendor/bin/phpstan'