From 81003b6796accfbf23ac0c8381349be84cdf76ce Mon Sep 17 00:00:00 2001 From: sgiehl Date: Sat, 18 Nov 2017 23:39:07 +0100 Subject: [PATCH] adds travis file --- .travis.yml | 148 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..d683875 --- /dev/null +++ b/.travis.yml @@ -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