name: PHP_CodeSniffer

on:
  pull_request:
    paths:
      - '**.php'
      - tools/phpcs/composer.json
      - phpcs.xml.dist

jobs:
  phpcs:
    runs-on: ubuntu-latest
    name: PHP_CodeSniffer

    steps:
    - uses: actions/checkout@v3

    - name: Setup PHP
      uses: shivammathur/setup-php@v2
      with:
        php-version: 8.1
        coverage: none
        tools: cs2pr
      env:
        fail-fast: true

    - name: Get composer cache directory
      id: composer-cache
      run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

    - name: Cache dependencies
      uses: actions/cache@v3
      with:
        path: ${{ steps.composer-cache.outputs.dir }}
        key: ${{ runner.os }}-composer-${{ hashFiles('tools/phpcs/composer.json') }}
        restore-keys: ${{ runner.os }}-composer-

    - name: Install dependencies
      run: composer composer-phpcs -- update --no-progress --prefer-dist

    - name: Run PHP_CodeSniffer
      run: composer phpcs -- -q --report=checkstyle | cs2pr
