name: run-linting

on:
    push:
    pull_request:

jobs:
    run-linting:
        runs-on: ubuntu-latest

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

            - name: Setup PHP
              uses: shivammathur/setup-php@v2
              with:
                php-version: 8.4

            - name: Get Composer cache cirectory
              id: composer-cache
              run: |
                echo "::set-output name=dir::$(composer config cache-files-dir)"

            - name: Cache Composer packages
              uses: actions/cache@v3
              with:
                path: ${{ steps.composer-cache.outputs.dir }}
                key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
                restore-keys: |
                  ${{ runner.os }}-composer-

            - name: Install dependencies
              run: composer install --prefer-dist --no-interaction --no-suggest

            - name: Execute linting
              run: |
                PHP_CS_FIXER_IGNORE_ENV=1 vendor/bin/php-cs-fixer fix --dry-run
                vendor/bin/phpcs --colors --report-full
