# do not edit this file manually, instead run the generate:travis-yml console command language: php # We want to test against PHP 5.3.3/5.4/5.5 php: - 5.5 - 5.4 - 5.3.3 # - 5.6 # - hhvm # Separate different test suites env: matrix: # PDO Mysql - TEST_SUITE=IntegrationTests MYSQL_ADAPTER=PDO_MYSQL - TEST_SUITE=PluginTests MYSQL_ADAPTER=PDO_MYSQL - TEST_SUITE=CoreTests MYSQL_ADAPTER=PDO_MYSQL # Mysqli - TEST_SUITE=IntegrationTests MYSQL_ADAPTER=MYSQLI - TEST_SUITE=PluginTests MYSQL_ADAPTER=MYSQLI - TEST_SUITE=CoreTests MYSQL_ADAPTER=MYSQLI # Javascript tests - TEST_SUITE=JavascriptTests MYSQL_ADAPTER=PDO_MYSQL - TEST_SUITE=AngularJSTests MYSQL_ADAPTER=PDO_MYSQL global: - PIWIK_ROOT_DIR=$TRAVIS_BUILD_DIR - secure: "AMhZmPZx4SUcuZRBzGHlQPxzM4D8FvFB3UThDa52gbi9KIBrwcumzV2VGi6B\n5fgjwtB4XTE1In7qhY2HMikPWBmWYYOQ5QcMPJsqqHt4iMmahx8WKzne6NOk\nNpqAuje/fulNGeP2LJZi0nrub3Fh4VwXaOvpNloKNQN/2JuqPtM=" - secure: "DySde80fX3dw0osGY5s5lGiGLjMleUkkONsuRDC4xjT1hAQP94FGHpPXVZV8\nAQY0s8MQmcK2eRLOQrmE9Bh1XXbGqh40s66XhSWq0hulFHxQH5OLaZXccFeu\n5WxGkHXnNDIc+CVhXW/IIbHZPO1K6hffS8fuvP1o6mYgxwFL6Xw=" - secure: "CW73pDjcaabpSL7bWiWIQLydKmvLzA1gWNv/zK0VcAKezQtCAQbqpIY1+B56wOhkaCWa7P+xdd2gUWEtvvdRKEC0sZcgCdHD5pQx390e5PWCMQTFO+doAElI4w4DMATCbH890Wcw2rotiZcjlkPYY+urIpUlcRsl6mMtBVQuQ9c=" matrix: allow_failures: - php: hhvm - php: 5.6 exclude: # Javascript tests need to run only on one PHP version - php: 5.4 env: TEST_SUITE=JavascriptTests MYSQL_ADAPTER=PDO_MYSQL - php: 5.5 env: TEST_SUITE=JavascriptTests MYSQL_ADAPTER=PDO_MYSQL - php: 5.6 env: TEST_SUITE=JavascriptTests MYSQL_ADAPTER=PDO_MYSQL - php: hhvm env: TEST_SUITE=JavascriptTests MYSQL_ADAPTER=PDO_MYSQL # AngularJS tests need to run only on one PHP version - php: 5.4 env: TEST_SUITE=AngularJSTests MYSQL_ADAPTER=PDO_MYSQL - php: 5.5 env: TEST_SUITE=AngularJSTests MYSQL_ADAPTER=PDO_MYSQL - php: 5.6 env: TEST_SUITE=AngularJSTests MYSQL_ADAPTER=PDO_MYSQL - php: hhvm env: TEST_SUITE=AngularJSTests MYSQL_ADAPTER=PDO_MYSQL # Only run Mysqli tests on PHP 5.3 - php: 5.4 env: TEST_SUITE=IntegrationTests MYSQL_ADAPTER=MYSQLI - php: 5.4 env: TEST_SUITE=PluginTests MYSQL_ADAPTER=MYSQLI - php: 5.4 env: TEST_SUITE=CoreTests MYSQL_ADAPTER=MYSQLI - php: 5.5 env: TEST_SUITE=IntegrationTests MYSQL_ADAPTER=MYSQLI - php: 5.5 env: TEST_SUITE=PluginTests MYSQL_ADAPTER=MYSQLI - php: 5.5 env: TEST_SUITE=CoreTests MYSQL_ADAPTER=MYSQLI - php: 5.6 env: TEST_SUITE=IntegrationTests MYSQL_ADAPTER=MYSQLI - php: 5.6 env: TEST_SUITE=PluginTests MYSQL_ADAPTER=MYSQLI - php: 5.6 env: TEST_SUITE=CoreTests MYSQL_ADAPTER=MYSQLI - php: hhvm env: TEST_SUITE=IntegrationTests MYSQL_ADAPTER=MYSQLI - php: hhvm env: TEST_SUITE=PluginTests MYSQL_ADAPTER=MYSQLI - php: hhvm env: TEST_SUITE=CoreTests MYSQL_ADAPTER=MYSQLI script: $PIWIK_ROOT_DIR/tests/travis/travis.sh before_install: # do not use the Zend allocator on PHP 5.3 since it will randomly segfault after program execution - '[[ "$TRAVIS_PHP_VERSION" == 5.3* ]] && export USE_ZEND_ALLOC=0 || true' install: # make sure travis test scripts are always latest (so in older releases/branches, the latest scripts will still be used) - git fetch - git checkout master -- ./tests/travis ./plugins/CoreConsole || true before_script: - ./tests/travis/configure_git.sh # print out mysql information - mysql --version - mysql -e "SELECT VERSION();" # configure mysql - mysql -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION'" # Travis default # Uncomment to enable sql_mode STRICT_TRANS_TABLES (new default in Mysql 5.6) #- mysql -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'" - mysql -e "SELECT @@sql_mode;" - mysql -e "SHOW GLOBAL VARIABLES;" # Start UI tests - ./tests/travis/initiate_ui_tests.sh # travis now complains about this failing 9 times out of 10, so removing it. hopefully the random failures it prevented won't come back # - travis_retry composer self-update - travis_retry composer install # print out more debugging info - uname -a - date - php -r "var_dump(gd_info());" - mysql -e 'create database piwik_tests;' # Make sure we use Python 2.6 - travis_retry sudo add-apt-repository ppa:fkrull/deadsnakes -y - travis_retry sudo apt-get update - travis_retry sudo apt-get install python2.6 python2.6-dev # Log Analytics works with Python 2.6 or 2.7 but we want to test on 2.6 - python2.6 --version - python --version - ./tests/travis/prepare.sh - ./tests/travis/setup_webserver.sh - export GENERATE_TRAVIS_YML_COMMAND='php ./console generate:travis-yml --core' - ./tests/travis/autoupdate_travis_yml.sh - 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 /var/log/nginx/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 - ./tests/travis/generate_docs.sh notifications: slack: rooms: - piwik:3HWhNh21qPfDACQXTrJOb0mW - piwikpro:7OABSbDrywSTo2nv9lD2svXG irc: skip_join: true on_success: change channels: - "irc.freenode.org#piwik-dev" template: - "%{repository} (%{commit}) : %{message} %{foo} " - "Build details: %{build_url}" #email: # if we specify piwik-builds@piwik.org then the developer doesn't get notified # - piwik-builds@piwik.org # this is a missing feature by Travis to notify both list and committer