As WPCS and PHPCompatibility were for a little while (May - July 2017) not compatible with PHPCS 3.x, the library tags cloned were previously fixed to prevent issues with that. As both WPCS as well as the PHPCompatibility standard are now compatible with PHPCS 3.x, the changes made in PR 1110 and PR 1183 can be reverted. Notes: * PHPCS - use `master`. WPCS uses a limited set of sniffs from PHPCS itself. Most of these sniffs are long established, stable and rarely get updated, so using PHPCS `master` should be safe. * WPCS - use the latest release `0.14.0`. WPCS is the main source of CS violations and is under active development. This means that new versions of WPCS will easily break the build, so should be managed. * PHPCompatibility - use `master`. PHPCompatibility checks PHP cross-version compatibility. It is actively developed and heavily unit tested, so any new violations found in `_s` because of changes in that library, should actually be addressed in `_s` ASAP. The PHPCompatibility library became compatible with PHPCS 3.x and improved compatibility with Composer installs in version `8.0.0` which was a breaking change. To account for that, the location where the library is cloned to and the `phpcs --installed_paths` command have been updated. Ref: https://github.com/wimg/PHPCompatibility/pull/446
92 lines
4 KiB
YAML
92 lines
4 KiB
YAML
# Travis CI (MIT License) configuration file for the Underscores WordPress theme.
|
|
# @link https://travis-ci.org/
|
|
|
|
# For use with the Underscores WordPress theme.
|
|
# @link https://github.com/Automattic/_s
|
|
|
|
# Ditch sudo and use containers.
|
|
# @link https://docs.travis-ci.com/user/migrating-from-legacy/#Why-migrate-to-container-based-infrastructure%3F
|
|
# @link https://docs.travis-ci.com/user/workers/container-based-infrastructure/#Routing-your-build-to-container-based-infrastructure
|
|
sudo: false
|
|
dist: trusty
|
|
|
|
# Declare project language.
|
|
# @link https://about.travis-ci.org/docs/user/languages/php/
|
|
language: php
|
|
|
|
# Declare versions of PHP to use. Use one decimal max.
|
|
# @link https://docs.travis-ci.com/user/build-configuration/
|
|
matrix:
|
|
fast_finish: true
|
|
|
|
include:
|
|
# Current $required_php_version for WordPress: 5.2.4
|
|
# aliased to 5.2.17
|
|
- php: '5.2'
|
|
dist: precise
|
|
# aliased to a recent 5.6.x version
|
|
- php: '5.6'
|
|
env: SNIFF=1
|
|
# aliased to a recent 7.0.x version
|
|
- php: '7.0'
|
|
# aliased to a recent 7.2.x version
|
|
- php: '7.2'
|
|
# aliased to a recent hhvm version
|
|
- php: 'hhvm'
|
|
|
|
allow_failures:
|
|
- php: 'hhvm'
|
|
|
|
# Use this to prepare the system to install prerequisites or dependencies.
|
|
# e.g. sudo apt-get update.
|
|
# Failures in this section will result in build status 'errored'.
|
|
# before_install:
|
|
|
|
# Use this to prepare your build for testing.
|
|
# e.g. copy database configurations, environment variables, etc.
|
|
# Failures in this section will result in build status 'errored'.
|
|
before_script:
|
|
- export PHPCS_DIR=/tmp/phpcs
|
|
- export WPCS_DIR=/tmp/wpcs
|
|
- export PHPCOMPAT_DIR=/tmp/phpcompatibility
|
|
# Install CodeSniffer for WordPress Coding Standards checks.
|
|
- if [[ "$SNIFF" == "1" ]]; then git clone -b master --depth 1 https://github.com/squizlabs/PHP_CodeSniffer.git $PHPCS_DIR; fi
|
|
# Install WordPress Coding Standards.
|
|
- if [[ "$SNIFF" == "1" ]]; then git clone -b 0.14.1 --depth 1 https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git $WPCS_DIR; fi
|
|
# Install PHP Compatibility sniffs.
|
|
- if [[ "$SNIFF" == "1" ]]; then git clone -b master --depth 1 https://github.com/wimg/PHPCompatibility.git $PHPCOMPAT_DIR; fi
|
|
# Set install path for PHPCS sniffs.
|
|
# @link https://github.com/squizlabs/PHP_CodeSniffer/blob/4237c2fc98cc838730b76ee9cee316f99286a2a7/CodeSniffer.php#L1941
|
|
- if [[ "$SNIFF" == "1" ]]; then $PHPCS_DIR/bin/phpcs --config-set installed_paths $WPCS_DIR,$PHPCOMPAT_DIR; fi
|
|
# After CodeSniffer install you should refresh your path.
|
|
- if [[ "$SNIFF" == "1" ]]; then phpenv rehash; fi
|
|
# Install JSCS: JavaScript Code Style checker.
|
|
# @link http://jscs.info/
|
|
- if [[ "$SNIFF" == "1" ]]; then npm install -g jscs; fi
|
|
# Install JSHint, a JavaScript Code Quality Tool.
|
|
# @link http://jshint.com/docs/
|
|
- if [[ "$SNIFF" == "1" ]]; then npm install -g jshint; fi
|
|
# Pull in the WP Core jshint rules.
|
|
- if [[ "$SNIFF" == "1" ]]; then wget https://develop.svn.wordpress.org/trunk/.jshintrc; fi
|
|
|
|
# Run test script commands.
|
|
# Default is specific to project language.
|
|
# All commands must exit with code 0 on success. Anything else is considered failure.
|
|
script:
|
|
# Search for PHP syntax errors.
|
|
- find -L . -name '*.php' -print0 | xargs -0 -n 1 -P 4 php -l
|
|
# Run the theme through JSHint.
|
|
- if [[ "$SNIFF" == "1" ]]; then jshint .; fi
|
|
# Run the theme through JavaScript Code Style checker.
|
|
- if [[ "$SNIFF" == "1" ]]; then jscs .; fi
|
|
# WordPress Coding Standards.
|
|
# @link https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards
|
|
# @link https://pear.php.net/package/PHP_CodeSniffer/
|
|
# Uses a custom ruleset based on WordPress. This ruleset is automatically
|
|
# picked up by PHPCS as it's named `phpcs.xml(.dist)`.
|
|
- if [[ "$SNIFF" == "1" ]]; then $PHPCS_DIR/bin/phpcs; fi
|
|
|
|
# Receive notifications for build results.
|
|
# @link https://docs.travis-ci.com/user/notifications/#Email-notifications
|
|
notifications:
|
|
email: false
|