wordpress/.travis.yml
John Blackbourn cc33575669 Build/Test tools: Get Travis builds working on HHVM again.
This change moves to specifying the PHPUnit version for all PHP versions, and fixes an issue where the Composer global bin directory is not at `~/.composer/vendor/bin` on the boxes that are used for HHVM builds.

See #40100

Merges [40269] and [40271] to the 4.5 branch.


git-svn-id: https://develop.svn.wordpress.org/branches/4.5@40274 602fd350-edb4-49c9-b593-d223f7449a82
2017-03-11 00:13:53 +00:00

114 lines
3.5 KiB
YAML

sudo: false
language: php
cache:
directories:
- node_modules
matrix:
include:
- php: 7.0
env: WP_TRAVISCI=travis:js
- php: 5.2
env: WP_TRAVISCI=travis:phpunit
- php: 5.3
env: WP_TRAVISCI=travis:phpunit
- php: 5.4
env: WP_TRAVISCI=travis:phpunit
- php: 5.5
env: WP_TRAVISCI=travis:phpunit
- php: 5.6
env: WP_TRAVISCI=travis:phpunit
- php: 5.6
env: WP_TRAVISCI=travis:phpunit WP_TRAVIS_OBJECT_CACHE=true
services: memcached
- php: hhvm
env: WP_TRAVISCI=travis:phpunit
- php: 7.0
env: WP_TRAVISCI=travis:phpunit
- php: nightly
env: WP_TRAVISCI=travis:phpunit
allow_failures:
- php: hhvm
- php: nightly
before_install:
- WP_CORE_DIR=/tmp/wordpress/
- git clone https://github.com/WordPress/twentysixteen.git src/wp-content/themes/twentysixteen
- |
if [[ "$WP_TRAVISCI" == "travis:phpunit" ]]; then
mysql -e "CREATE DATABASE wordpress_tests;" -uroot
cp wp-tests-config-sample.php wp-tests-config.php
sed -i "s/youremptytestdbnamehere/wordpress_tests/" wp-tests-config.php
sed -i "s/yourusernamehere/travis/" wp-tests-config.php
sed -i "s/yourpasswordhere//" wp-tests-config.php
svn checkout https://plugins.svn.wordpress.org/wordpress-importer/trunk tests/phpunit/data/plugins/wordpress-importer
fi
- |
if [[ "$WP_TRAVIS_OBJECT_CACHE" == "true" ]]; then
curl https://raw.githubusercontent.com/tollmanz/wordpress-pecl-memcached-object-cache/584392b56dc4adbe52bd2c7b86f875e23a3e5f75/object-cache.php > src/wp-content/object-cache.php
echo "extension = memcached.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
fi
before_script:
- |
# Remove Xdebug for a huge performance increase, but not from nightly or hhvm:
stable='^[0-9\.]+$'
if [[ "$TRAVIS_PHP_VERSION" =~ $stable ]]; then
phpenv config-rm xdebug.ini
fi
- |
# Export Composer's global bin dir to PATH, but not on PHP 5.2:
if [[ ${TRAVIS_PHP_VERSION:0:3} != "5.2" ]]; then
composer config --list --global
export PATH=`composer config --list --global | grep '\[home\]' | { read a; echo "${a#* }/vendor/bin:$PATH"; }`
fi
- |
# Install the specified version of PHPUnit depending on the PHP version:
if [[ "$WP_TRAVISCI" == "travis:phpunit" ]]; then
case "$TRAVIS_PHP_VERSION" in
7.1|7.0|hhvm|nightly)
echo "Using PHPUnit 5.7"
composer global require "phpunit/phpunit=5.7.*"
;;
5.6|5.5|5.4|5.3)
echo "Using PHPUnit 4.8"
composer global require "phpunit/phpunit=4.8.*"
;;
5.2)
# Do nothing, use default PHPUnit 3.6.x
echo "Using default PHPUnit, hopefully 3.6"
;;
*)
echo "No PHPUnit version handling for PHP version $TRAVIS_PHP_VERSION"
exit 1
;;
esac
fi
- npm --version
- node --version
- nvm install 4.7.2
- npm install -g grunt-cli
- npm install
- npm prune
- mysql --version
- phpenv versions
- php --version
- |
# Debug PHP extensions, but not on HHVM because the command hangs indefinitely:
if [[ "$TRAVIS_PHP_VERSION" != 'hhvm' ]]; then
php -m
fi
- npm --version
- node --version
- which phpunit
- phpunit --version
- curl --version
- grunt --version
- git --version
- svn --version
script: grunt $WP_TRAVISCI
notifications:
slack:
rooms:
secure: WuMCpfgrm0GIdPbYzsGOsakZ5x7QIbEBwD+CPHVXGKbL3ZbqQ+BVcDRnMiwzxjgf1vzg2de0taXCSMGKBxsWce23NZkOnmwPdIB8XOnwDV7T7zylgYD5S7p3gI6gV0l8Y3/gROdXFZap6viC1qRr4E79ow53RKk7E3WyOo7TWqo=
on_start: never
on_failure: always
on_success: change