@@ -4,31 +4,46 @@ sudo: false
44
55language : php
66
7- php :
8- - 5.4
9- - 5.5
10- - 5.6
11- - 7.0
12- - 7.1
13- - 7.2
14- - nightly
15- - hhvm
7+ env :
8+ global :
9+ - COMPOSER_NO_INTERACTION=1
10+ - WP_VERSION=*
1611
17- matrix :
12+ jobs :
1813 include :
14+ - php : 7.3
15+ env : WP_VERSION=^5.0 COVERAGE=1 PHPCS=1
16+ - php : 7.2
17+ env : WP_VERSION=^4.9
18+ - php : 7.2
19+ env : WP_VERSION=^4.8
20+ - php : 7.2
21+ env : WP_VERSION=^4.7
22+ - php : 7.3
23+ env : WP_MULTISITE=1
24+ - php : 7.3
25+ env : PHPSTAN=1
26+ - php : 7.3
27+ env : PHPMD=1
28+ - php : 7.3
29+ env : PSALM=1
30+ - php : 7.2
31+ - php : 7.1
32+ - php : 7.0
33+ - php : 5.6
34+ - php : 5.5
35+ - php : 5.4
1936 - php : 5.3
2037 dist : precise
2138 env : TRAVIS_DIST_PRECISE=1
22- - php : 5.6
23- env : WP_MULTISITE=1
24- - php : 5.6
25- env : WP_VERSION=4.8
26- - php : 5.6
27- env : WP_VERSION=4.7 COVERAGE=1 GRUNT=1
28- fast_finish : true
39+ - php : nightly
40+ - php : hhvm
2941 allow_failures :
3042 - php : hhvm
3143 - php : nightly
44+ - env : PHPMD=1
45+ - env : PHPSTAN=1
46+ - env : PSALM=1
3247
3348cache :
3449 directories :
@@ -39,6 +54,23 @@ cache:
3954before_install :
4055 # Install latest version of Node.js (https://github.com/creationix/nvm).
4156 - if [ "${TRAVIS_DIST_PRECISE}" == "1" ]; then nvm install node; fi
57+ # Create database for PHPUnit tests.
58+ - mysql -e 'CREATE DATABASE wp_phpunit_tests;'
59+ # Remove Xdebug for a huge performance increase:
60+ - |
61+ if [[ "$COVERAGE" != "1" && -f ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini ]]; then
62+ phpenv config-rm xdebug.ini
63+ fi
64+ # Raise PHP memory limit to 2048MB
65+ - echo 'memory_limit = 2048M' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
66+ # Validate composer.json file.
67+ - composer validate --strict
68+ # Add Composer global vendor/bin to path.
69+ - export PATH="$HOME/.composer/vendor/bin:$PATH"
70+ # PHPStan
71+ - if [ "$PHPSTAN" == "1" ]; then composer global require phpstan/phpstan; fi
72+ # Psalm
73+ - if [ "$PSALM" == "1" ]; then composer global require vimeo/psalm; fi
4274
4375install :
4476 # Install Grunt command line interface (https://github.com/gruntjs/grunt-cli).
@@ -49,16 +81,25 @@ install:
4981 - composer self-update
5082 # Install Composer packages.
5183 - composer install
52-
53- before_script :
54- - wget https://raw.githubusercontent.com/wp-cli/sample-plugin/master/bin/install-wp-tests.sh
55- - bash install-wp-tests.sh wordpress_test root '' localhost $WP_VERSION
84+ # Test on specific WordPress version.
85+ - composer require --dev --update-with-dependencies roots/wordpress:${WP_VERSION} wp-phpunit/wp-phpunit:${WP_VERSION}
86+ # List available packages.
87+ - composer show
5688
5789script :
58- - if [[ -z "$GRUNT" ]]; then grunt phpunit; fi
59- - if [[ -z "$GRUNT" ]]; then grunt phplint; fi
60- - if [[ "$GRUNT" == "1" ]]; then grunt; fi
90+ # PHPLint
91+ - composer run-script phplint
92+ # PHPUnit
93+ - composer run-script phpunit
94+ # PHP_CodeSniffer
95+ - if [ "$PHPCS" == "1" ]; then composer run-script phpcs; fi
96+ # PHP Mess Detector
97+ - if [ "$PHPMD" == "1" ]; then composer run-script phpmd; fi
98+ # PHPStan
99+ - if [ "$PHPSTAN" == "1" ]; then phpstan analyze; fi
100+ # Psalm
101+ - if [ "$PSALM" == "1" ]; then psalm; fi
61102
62103after_success :
63- - if [ $COVERAGE == "1" ]; then php vendor/bin/coveralls -v ; fi
64- - if [ $COVERAGE == "1" ]; then bash <(curl -s https://codecov.io/bash); fi
104+ - if [ " $COVERAGE" == "1" ]; then composer run-script coveralls ; fi
105+ - if [ " $COVERAGE" == "1" ]; then bash <(curl -s https://codecov.io/bash); fi
0 commit comments