diff --git a/.github/workflows/pr-code-sniff.yml b/.github/workflows/pr-code-sniff.yml index 4443cc348b6..0d3dc8ab3d4 100644 --- a/.github/workflows/pr-code-sniff.yml +++ b/.github/workflows/pr-code-sniff.yml @@ -15,13 +15,13 @@ jobs: steps: - uses: actions/checkout@v3 with: - fetch-depth: 100 + fetch-depth: 0 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: 7.4 - tools: composer, cs2pr + tools: composer - name: Tool versions run: | @@ -36,11 +36,9 @@ jobs: - name: Install and Build uses: ./.github/actions/install-build - - name: Run code sniff - continue-on-error: true - working-directory: plugins/woocommerce - run: ./tests/bin/phpcs.sh "${{ github.event.pull_request.base.sha }}" "${{ github.event.after }}" - - - name: Show PHPCS results in PR - working-directory: plugins/woocommerce - run: cs2pr ./phpcs-report.xml + - name: Run code sniffer + uses: thenabeel/action-phpcs@v8 + with: + files: "**.php" + phpcs_path: plugins/woocommerce/vendor/bin/phpcs + standard: phpcs.xml diff --git a/phpcs.xml b/phpcs.xml index 70bf2d649ca..9103caf8335 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -117,12 +117,6 @@ src/Admin/ - - - plugins/woocommerce/src/Internal/Admin/ - src/Admin/ - - src/Internal/Admin/ @@ -133,11 +127,11 @@ src/Internal/Admin/ src/Admin/ - + src/Internal/Admin/ src/Admin/ - + diff --git a/plugins/woocommerce/bin/composer/phpcs/composer.json b/plugins/woocommerce/bin/composer/phpcs/composer.json index 232bae80f4d..51e920e522d 100644 --- a/plugins/woocommerce/bin/composer/phpcs/composer.json +++ b/plugins/woocommerce/bin/composer/phpcs/composer.json @@ -1,10 +1,11 @@ { "require-dev": { - "woocommerce/woocommerce-sniffs": "^0.1.3" + "woocommerce/woocommerce-sniffs": "^0.1.3", + "sirbrillig/phpcs-changed": "^2.10" }, "config": { "platform": { - "php": "7.0" + "php": "7.4" }, "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true diff --git a/plugins/woocommerce/bin/composer/phpcs/composer.lock b/plugins/woocommerce/bin/composer/phpcs/composer.lock index 2d6d2068f47..1431f8daf70 100644 --- a/plugins/woocommerce/bin/composer/phpcs/composer.lock +++ b/plugins/woocommerce/bin/composer/phpcs/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9de5fb089d0fd21b5e15523eb7c07459", + "content-hash": "df66db582a7c00ab0a701277e962ecce", "packages": [], "packages-dev": [ { @@ -254,6 +254,63 @@ }, "time": "2021-12-30T16:37:40+00:00" }, + { + "name": "sirbrillig/phpcs-changed", + "version": "v2.10.0", + "source": { + "type": "git", + "url": "https://github.com/sirbrillig/phpcs-changed.git", + "reference": "ba049e6f7da40d64056f7b6c4078e87f0f292d6b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sirbrillig/phpcs-changed/zipball/ba049e6f7da40d64056f7b6c4078e87f0f292d6b", + "reference": "ba049e6f7da40d64056f7b6c4078e87f0f292d6b", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.1", + "phpstan/phpstan": "^0.12.33", + "phpunit/phpunit": "^6.4 || ^9.5", + "sirbrillig/phpcs-import-detection": "^1.1.1", + "sirbrillig/phpcs-variable-analysis": "^2.1.3", + "squizlabs/php_codesniffer": "^3.2.1" + }, + "bin": [ + "bin/phpcs-changed" + ], + "type": "library", + "autoload": { + "files": [ + "PhpcsChanged/Cli.php", + "PhpcsChanged/SvnWorkflow.php", + "PhpcsChanged/GitWorkflow.php", + "PhpcsChanged/functions.php" + ], + "psr-4": { + "PhpcsChanged\\": "PhpcsChanged/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Payton Swick", + "email": "payton@foolord.com" + } + ], + "description": "Run phpcs on files, but only report warnings/errors from lines which were changed.", + "support": { + "issues": "https://github.com/sirbrillig/phpcs-changed/issues", + "source": "https://github.com/sirbrillig/phpcs-changed/tree/v2.10.0" + }, + "time": "2022-03-09T18:16:50+00:00" + }, { "name": "squizlabs/php_codesniffer", "version": "3.7.1", @@ -414,7 +471,7 @@ "platform": [], "platform-dev": [], "platform-overrides": { - "php": "7.0" + "php": "7.4" }, "plugin-api-version": "2.3.0" } diff --git a/plugins/woocommerce/changelog/phpcs-changed-33584 b/plugins/woocommerce/changelog/phpcs-changed-33584 new file mode 100644 index 00000000000..05c7835721a --- /dev/null +++ b/plugins/woocommerce/changelog/phpcs-changed-33584 @@ -0,0 +1,3 @@ +Significance: patch +Type: update +Comment: Add phpcs-changed to CI to only sniff changed lines of code. diff --git a/plugins/woocommerce/composer.json b/plugins/woocommerce/composer.json index 758e5f00a26..b08442419bf 100644 --- a/plugins/woocommerce/composer.json +++ b/plugins/woocommerce/composer.json @@ -88,7 +88,7 @@ "phpcs -s -p" ], "phpcs-pre-commit": [ - "phpcs -s -p -n" + "phpcs-changed --git -s" ], "phpcbf": [ "phpcbf -p" diff --git a/plugins/woocommerce/tests/bin/phpcs.sh b/plugins/woocommerce/tests/bin/phpcs.sh deleted file mode 100755 index 1a240a0fc69..00000000000 --- a/plugins/woocommerce/tests/bin/phpcs.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash - -COMMIT_RANGE="${1} ${2}" -CHANGED_FILES=`git diff --name-only --diff-filter=ACMR $COMMIT_RANGE | grep '\.php' | grep 'plugins/woocommerce/' | sed -e 's/^plugins\/woocommerce\///' | awk '{print}' ORS=' '` -IGNORE="tests/cli/,includes/libraries/,includes/api/legacy/" - -if [ "$CHANGED_FILES" != "" ]; then - echo "Changed files: $CHANGED_FILES" - echo "Running Code Sniffer." - - ./vendor/bin/phpcs --ignore=$IGNORE --encoding=utf-8 -s -n -p --report-full --report-checkstyle=./phpcs-report.xml ${CHANGED_FILES} -else - echo "No changes found. Skipping PHPCS run." -fi