woocommerce/.travis.yml

73 lines
1.7 KiB
YAML
Raw Normal View History

2014-09-01 06:03:52 +00:00
language: php
addons:
chrome: stable
apt:
packages:
- nginx
sudo: false
2017-08-22 10:02:32 +00:00
# Test main supported versions of PHP against latest WP.
php:
- 5.6
2015-12-08 18:26:14 +00:00
- 7.0
- 7.1
- 7.2
- 7.3
env:
- WP_VERSION=latest WP_MULTISITE=0
# Additional tests against stable PHP (min recommended version is 5.6) and past supported versions of WP
# and code coverage report.
2014-09-01 06:03:52 +00:00
matrix:
fast_finish: true
2014-09-01 06:03:52 +00:00
include:
2017-07-20 10:23:37 +00:00
- php: 5.3
2017-07-20 14:55:45 +00:00
dist: precise
2017-07-20 10:23:37 +00:00
- php: 5.2
2017-07-20 14:55:45 +00:00
dist: precise
- name: "Coding standard check"
php: 7.2
env: WP_VERSION=latest WP_MULTISITE=0 RUN_PHPCS=1
- name: "e2e tests"
php: 7.2
env: WP_VERSION=latest WP_MULTISITE=0 RUN_E2E=1
- name: "Unit tests code coverage"
php: 7.1
env: WP_VERSION=latest WP_MULTISITE=0 RUN_CODE_COVERAGE=1
- name: "WooCommerce unit tests using WordPress nightly"
php: 7.3
env: WP_VERSION=nightly WP_MULTISITE=0
allow_failures:
- php: 7.1
env: WP_VERSION=latest WP_MULTISITE=0 RUN_CODE_COVERAGE=1
2014-09-01 06:03:52 +00:00
before_script:
- |
# Remove Xdebug for a huge performance increase:
if [ -f ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini ]; then
phpenv config-rm xdebug.ini
else
echo "xdebug.ini does not exist"
fi
Make sure PHPUnit tests runs when using PHP 7.2+ in the Travis builds Due to a recent change in the Travis environment, WooCommerce unit tests stopped working with the following error (see for example https://travis-ci.org/woocommerce/woocommerce/jobs/463470674#L876) in the PHP 7.2 and 7.3 build jobs: Fatal error: Class PHPUnit_Util_Test may not inherit from final class (PHPUnit\Util\Test) in /tmp/wordpress-tests-lib/includes/phpunit6-compat.php on line 18 This error is happening because Travis started ignoring the PHPUnit version that we install manually via Composer (https://github.com/woocommerce/woocommerce/blob/f7bc3fb85195df8f96c70d2846b0104ee224fef2/tests/bin/travis.sh#L6) and started using the PHPUnit version that is shipped with each of its PHP docker images. This means that for the docker images running PHP 7.2 and 7.3, PHPUnit 7 is used but the WordPress unit test framework is not compatible with PHPUnit 7 (see WordPress core ticket https://core.trac.wordpress.org/ticket/43218) and produces the error above. I believe that this is happening because Travis changed the directory where it installs composer global packages from `$HOME/.composer/` to `$HOME/.config/composer/` (https://github.com/travis-ci/travis-ci/issues/7289#issuecomment-427333966) and we add `$HOME/.composer/vendor/bin:$PATH` to the `$PATH`. So this commit simply updates the path in the line where we add it to the `$PATH`. I tried to use `composer exec` instead of updating `$PATH` but that didn't work for PHP 5.2.
2018-12-05 13:52:07 +00:00
- export PATH="$HOME/.config/composer/vendor/bin:$PATH"
2017-09-26 12:24:11 +00:00
- bash tests/bin/install.sh woocommerce_test root '' localhost $WP_VERSION
- bash tests/bin/travis.sh before
2014-09-01 06:03:52 +00:00
2016-08-27 14:18:14 +00:00
script:
2017-10-05 16:09:39 +00:00
- bash tests/bin/phpunit.sh
2017-10-10 13:50:22 +00:00
- bash tests/bin/phpcs.sh
- travis_retry bash tests/bin/run-e2e-CI.sh
after_script:
- bash tests/bin/travis.sh after
# Specifies that Travis should create builds for master and release branches and also tags.
branches:
only:
- master
- /^\d+\.\d+(\.\d+)?(-\S*)?$/
- /^release\//