name: 'Lint Checker: PHP' on: push: paths: - '**.php' pull_request: types: [opened, edited, reopened, ready_for_review] paths: - '**.php' workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} cancel-in-progress: true jobs: phpcs: name: Run PHP Code Sniffer runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 # User PHP 7.4 here for compatibility with the WordPress codesniffer rules. - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.4' coverage: none tools: composer, cs2pr - uses: technote-space/get-diff-action@v6 with: PATTERNS: | **/*.php - name: Get Composer cache directory id: composer-cache run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT if: "!! env.GIT_DIFF" - name: Cache Composer vendor directory uses: actions/cache@v3 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-composer- if: "!! env.GIT_DIFF" - name: Validate composer.json and composer.lock run: composer validate if: "!! env.GIT_DIFF" - name: Install dependencies run: composer install --no-progress --optimize-autoloader --prefer-dist if: "!! env.GIT_DIFF" - name: Detecting PHP Code Standards Violations run: vendor/bin/phpcs --standard=phpcs.xml -s ${{ env.GIT_DIFF }} if: "!! env.GIT_DIFF"