-
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
148 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
# do not edit this file manually, instead run the generate:travis-yml console command | ||
|
||
language: php | ||
|
||
php: | ||
- 5.6 | ||
- 5.5 | ||
# - hhvm | ||
|
||
services: | ||
- redis-server | ||
|
||
addons: | ||
apt: | ||
sources: | ||
- deadsnakes | ||
|
||
packages: | ||
- python2.6 | ||
- python2.6-dev | ||
- nginx | ||
- realpath | ||
- lftp | ||
|
||
# Separate different test suites | ||
env: | ||
global: | ||
- PLUGIN_NAME=IPReports | ||
- PIWIK_ROOT_DIR=$TRAVIS_BUILD_DIR/piwik | ||
# this variable controls the version of Piwik your tests will run against. | ||
# by default it will run against the maximum support version read from plugin.json | ||
# (PIWIK_TEST_TARGET=maximum_supported_piwik). | ||
# You can also specify a specific Piwik version | ||
# (PIWIK_TEST_TARGET=2.16.0-b1). | ||
- PIWIK_TEST_TARGET=maximum_supported_piwik | ||
matrix: | ||
- TEST_SUITE=PluginTests MYSQL_ADAPTER=PDO_MYSQL TEST_AGAINST_PIWIK_BRANCH=$PIWIK_TEST_TARGET | ||
- TEST_SUITE=PluginTests MYSQL_ADAPTER=PDO_MYSQL TEST_AGAINST_CORE=minimum_required_piwik | ||
- TEST_SUITE=UITests MYSQL_ADAPTER=PDO_MYSQL TEST_AGAINST_PIWIK_BRANCH=$PIWIK_TEST_TARGET | ||
|
||
matrix: | ||
exclude: | ||
# execute latest stable tests only w/ PHP 5.5 | ||
- php: 5.5 | ||
env: TEST_SUITE=PluginTests MYSQL_ADAPTER=PDO_MYSQL TEST_AGAINST_CORE=minimum_required_piwik | ||
# execute UI tests only w/ PHP 5.6 | ||
- php: 5.5 | ||
env: TEST_SUITE=UITests MYSQL_ADAPTER=PDO_MYSQL TEST_AGAINST_PIWIK_BRANCH=$PIWIK_TEST_TARGET | ||
|
||
dist: precise | ||
|
||
sudo: required | ||
|
||
script: $PIWIK_ROOT_DIR/tests/travis/travis.sh | ||
|
||
before_install: | ||
|
||
install: | ||
# move all contents of current repo (which contains the plugin) to a new directory | ||
- mkdir $PLUGIN_NAME | ||
- cp -R !($PLUGIN_NAME) $PLUGIN_NAME | ||
- cp -R .git/ $PLUGIN_NAME/ | ||
- cp .travis.yml $PLUGIN_NAME | ||
# checkout piwik in the current directory | ||
- git clone -q https://github.com/piwik/piwik.git piwik | ||
- cd piwik | ||
- git fetch -q --all | ||
- git submodule update | ||
|
||
# make sure travis-scripts repo is latest for initial travis setup | ||
- '[ -d ./tests/travis/.git ] || sh -c "rm -rf ./tests/travis && git clone https://github.com/piwik/travis-scripts.git ./tests/travis"' | ||
- cd ./tests/travis ; git checkout master ; cd ../.. | ||
|
||
- export GENERATE_TRAVIS_YML_COMMAND="php ./tests/travis/generator/main.php generate:travis-yml --plugin=\"IPReports\" --verbose" | ||
- '[[ "$TRAVIS_JOB_NUMBER" != *.1 || "$TRAVIS_PULL_REQUEST" != "false" ]] || ./tests/travis/autoupdate_travis_yml.sh' | ||
|
||
- ./tests/travis/checkout_test_against_branch.sh | ||
|
||
- '[ "$PLUGIN_NAME" == "" ] || [ ! -f ./tests/travis/check_plugin_compatible_with_piwik.php ] || php ./tests/travis/check_plugin_compatible_with_piwik.php "$PLUGIN_NAME"' | ||
|
||
- ./tests/travis/configure_git.sh | ||
|
||
# travis now complains about this failing 9 times out of 10, so removing it | ||
#- travis_retry composer self-update | ||
- '[ "$SKIP_COMPOSER_INSTALL" == "1" ] || travis_retry composer install' | ||
|
||
|
||
# move plugin contents to folder in the plugins subdirectory | ||
- rm -rf plugins/$PLUGIN_NAME | ||
- mv ../$PLUGIN_NAME plugins | ||
|
||
# clone dependent repos | ||
- ./tests/travis/checkout_dependent_plugins.sh | ||
|
||
before_script: | ||
- if [[ "$TRAVIS_PHP_VERSION" != 7* ]]; then phpenv config-rm xdebug.ini; fi | ||
|
||
# add always_populate_raw_post_data=-1 to php.ini | ||
- echo "always_populate_raw_post_data=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini | ||
|
||
# disable opcache to avoid random failures on travis | ||
- echo "opcache.enable=0" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini | ||
|
||
# make tmpfs and run MySQL on it for reasonnable performance | ||
- ./tests/travis/setup_mysql_tmpfs.sh | ||
|
||
# print out mysql information | ||
- mysql --version | ||
- mysql -e "SELECT VERSION();" | ||
|
||
# configure mysql | ||
- mysql -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'" # Travis default | ||
# try to avoid 'mysql has gone away' errors | ||
- mysql -e "SET GLOBAL wait_timeout = 36000;" | ||
- mysql -e "SET GLOBAL max_allowed_packet = 134209536;" | ||
- mysql -e "SHOW VARIABLES LIKE 'max_allowed_packet';" | ||
- mysql -e "SHOW VARIABLES LIKE 'wait_timeout';" | ||
|
||
- mysql -e "SELECT @@sql_mode;" | ||
# - mysql -e "SHOW GLOBAL VARIABLES;" | ||
|
||
# print out more debugging info | ||
- uname -a | ||
- date | ||
- php -r "var_dump(gd_info());" | ||
- mysql -e 'create database piwik_tests;' | ||
|
||
- ./tests/travis/prepare.sh | ||
- ./tests/travis/setup_webserver.sh | ||
- ./tests/travis/install_phantomjs.sh; export PATH=$PWD/travis_phantomjs/phantomjs-2.1.1-linux-x86_64/bin:$PATH; | ||
|
||
- cd tests/PHPUnit | ||
|
||
after_script: | ||
# change directory back to root travis dir | ||
- cd $PIWIK_ROOT_DIR | ||
|
||
# output contents of files w/ debugging info to screen | ||
- cat $PIWIK_ROOT_DIR/tests/travis/error.log | ||
- cat $PIWIK_ROOT_DIR/tmp/php-fpm.log | ||
- cat $PIWIK_ROOT_DIR/tmp/logs/piwik.log | ||
- cat $PIWIK_ROOT_DIR/config/config.ini.php | ||
|
||
# upload test artifacts (for debugging travis failures) | ||
- ./tests/travis/upload_artifacts.sh | ||
|
||
after_success: | ||
- cd $PIWIK_ROOT_DIR |