Skip to content

Commit

Permalink
adds travis file
Browse files Browse the repository at this point in the history
  • Loading branch information
sgiehl committed Nov 18, 2017
1 parent 22c3e16 commit 81003b6
Showing 1 changed file with 148 additions and 0 deletions.
148 changes: 148 additions & 0 deletions .travis.yml
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

0 comments on commit 81003b6

Please sign in to comment.