diff --git a/.travis.yml b/.travis.yml index 92786e888cc..5add95e2ac1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,24 @@ before_script: - bash tests/bin/install.sh woocommerce_test root '' localhost $WP_VERSION - bash tests/bin/travis.sh before -script: phpunit -c phpunit.xml.dist +script: + # Search for PHP syntax errors. + - find . \( -name '*.php' \) -exec php -lf {} \; + # Run PHPUnit tests. + - phpunit -c phpunit.xml.dist + # WordPress Coding Standards. + # @link https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards + # @link http://pear.php.net/package/PHP_CodeSniffer/ + # -p flag: Show progress of the run. + # -s flag: Show sniff codes in all reports. + # -v flag: Print verbose output. + # -n flag: Do not print warnings. (shortcut for --warning-severity=0) + # --standard: Use WordPress as the standard. + # --extensions: Only sniff PHP files. + - /tmp/phpcs/scripts/phpcs -p -s -v -n ./*.php --standard=./phpcs.ruleset.xml --extensions=php + - /tmp/phpcs/scripts/phpcs -p -s -v -n ./**/*.php --standard=./phpcs.ruleset.xml --extensions=php + - /tmp/phpcs/scripts/phpcs -p -s -v -n ./**/**/*.php --standard=./phpcs.ruleset.xml --extensions=php + - /tmp/phpcs/scripts/phpcs -p -s -v -n ./**/**/**/*.php --standard=./phpcs.ruleset.xml --extensions=php after_script: - bash tests/bin/travis.sh after diff --git a/phpcs.ruleset.xml b/phpcs.ruleset.xml new file mode 100644 index 00000000000..f3c9edeb658 --- /dev/null +++ b/phpcs.ruleset.xml @@ -0,0 +1,174 @@ + + + + + + + A custom set of code standard rules to check for WordPress themes and plugins. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/bin/travis.sh b/tests/bin/travis.sh index 974c7e7e3ee..3846d3aca3e 100644 --- a/tests/bin/travis.sh +++ b/tests/bin/travis.sh @@ -12,6 +12,19 @@ if [ $1 == 'before' ]; then composer init --require=satooshi/php-coveralls:0.7.0 -n composer install --no-interaction + # Install CodeSniffer for WordPress Coding Standards checks. + git clone -b master --depth 1 https://github.com/squizlabs/PHP_CodeSniffer.git /tmp/phpcs + # Install WordPress Coding Standards. + git clone -b master --depth 1 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git /tmp/sniffs + # Install PHP Compatibility sniffs. + git clone -b master --depth 1 https://github.com/wimg/PHPCompatibility.git /tmp/sniffs/PHPCompatibility + # Set install path for PHPCS sniffs. + # @link https://github.com/squizlabs/PHP_CodeSniffer/blob/4237c2fc98cc838730b76ee9cee316f99286a2a7/CodeSniffer.php#L1941 + /tmp/phpcs/scripts/phpcs --config-set installed_paths /tmp/sniffs + # After CodeSniffer install you should refresh your path. + phpenv rehash + + elif [ $1 == 'after' ]; then # no Xdebug and therefore no coverage in PHP 5.2