# do not edit this file manually, instead run the generate:travis-yml console command # if you are a Piwik core developer, to auto generate the .travis.yml: # 1) edit this template file: https://github.com/piwik/travis-scripts/blob/master/generator/templates/travis.yml.twig # 2) commit the updated submodule in `piwik/tests/travis/` # when modifying this file, please consider whether your changes should apply to plugin .travis.yml files. if not, check whether the pluginName twig var is empty, # otherwise your changes will be synced with every plugin that uses an auto generated .travis.yml # also please test generation before committing by running ./console generate:travis-yml --core and ./console generate:travis-yml --plugin=CustomAlerts # and making sure the .travis.yml files are changed correctly 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: matrix: # PDO Mysql - TEST_SUITE=SystemTests MYSQL_ADAPTER=PDO_MYSQL - TEST_SUITE=IntegrationTests MYSQL_ADAPTER=PDO_MYSQL - TEST_SUITE=UnitTests MYSQL_ADAPTER=PDO_MYSQL # Javascript tests - TEST_SUITE=JavascriptTests MYSQL_ADAPTER=PDO_MYSQL - TEST_SUITE=AngularJSTests MYSQL_ADAPTER=PDO_MYSQL SKIP_COMPOSER_INSTALL=1 # All tests after another - TEST_SUITE=AllTests MYSQL_ADAPTER=MYSQLI ALLTEST_EXTRA_OPTIONS="--run-first-half-only" - TEST_SUITE=AllTests MYSQL_ADAPTER=MYSQLI ALLTEST_EXTRA_OPTIONS="--run-second-half-only" - TEST_SUITE=UITests MYSQL_ADAPTER=PDO_MYSQL UITEST_EXTRA_OPTIONS="--run-first-half-only" - TEST_SUITE=UITests MYSQL_ADAPTER=PDO_MYSQL UITEST_EXTRA_OPTIONS="--run-second-half-only" global: - PIWIK_ROOT_DIR=$TRAVIS_BUILD_DIR - SKIP_INSTALL_MYSQL_56=1 - secure: "AMhZmPZx4SUcuZRBzGHlQPxzM4D8FvFB3UThDa52gbi9KIBrwcumzV2VGi6B\n5fgjwtB4XTE1In7qhY2HMikPWBmWYYOQ5QcMPJsqqHt4iMmahx8WKzne6NOk\nNpqAuje/fulNGeP2LJZi0nrub3Fh4VwXaOvpNloKNQN/2JuqPtM=" - secure: "CW73pDjcaabpSL7bWiWIQLydKmvLzA1gWNv/zK0VcAKezQtCAQbqpIY1+B56wOhkaCWa7P+xdd2gUWEtvvdRKEC0sZcgCdHD5pQx390e5PWCMQTFO+doAElI4w4DMATCbH890Wcw2rotiZcjlkPYY+urIpUlcRsl6mMtBVQuQ9c=" matrix: fast_finish: true exclude: # Run test suites separately only on PHP 5.6 with PDO - php: 5.5 env: TEST_SUITE=SystemTests MYSQL_ADAPTER=PDO_MYSQL - php: 5.5 env: TEST_SUITE=IntegrationTests MYSQL_ADAPTER=PDO_MYSQL - php: 5.5 env: TEST_SUITE=UnitTests MYSQL_ADAPTER=PDO_MYSQL # run UI tests on PHP 5.5 only - php: 5.6 env: TEST_SUITE=UITests MYSQL_ADAPTER=PDO_MYSQL UITEST_EXTRA_OPTIONS="--run-first-half-only" - php: 5.6 env: TEST_SUITE=UITests MYSQL_ADAPTER=PDO_MYSQL UITEST_EXTRA_OPTIONS="--run-second-half-only" # run all tests not on PHP 5.6 and run MySQLI tests only on 5.6 - php: 5.5 env: TEST_SUITE=AllTests MYSQL_ADAPTER=MYSQLI ALLTEST_EXTRA_OPTIONS="--run-first-half-only" - php: 5.5 env: TEST_SUITE=AllTests MYSQL_ADAPTER=MYSQLI ALLTEST_EXTRA_OPTIONS="--run-second-half-only" # Javascript tests need to run only on one PHP version - php: 5.5 env: TEST_SUITE=JavascriptTests MYSQL_ADAPTER=PDO_MYSQL # AngularJS tests need to run only on one PHP version - php: 5.5 env: TEST_SUITE=AngularJSTests MYSQL_ADAPTER=PDO_MYSQL SKIP_COMPOSER_INSTALL=1 dist: precise sudo: required script: $PIWIK_ROOT_DIR/tests/travis/travis.sh before_install: - ./tests/travis/install_git_lfs.sh install: - git fetch -q - export GENERATE_TRAVIS_YML_COMMAND="php ./tests/travis/generator/main.php generate:travis-yml --core --verbose" - '[[ "$TRAVIS_JOB_NUMBER" != *.1 || "$TRAVIS_PULL_REQUEST" != "false" ]] || ./tests/travis/autoupdate_travis_yml.sh' - ./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' 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 - sudo mkdir /mnt/ramdisk - sudo mount -t tmpfs -o size=1024m tmpfs /mnt/ramdisk - sudo stop mysql - sudo mv /var/lib/mysql /mnt/ramdisk - sudo ln -s /mnt/ramdisk/mysql /var/lib/mysql - sudo start mysql # 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 - ./tests/travis/generate_docs.sh cache: directories: - "travis_phantomjs" notifications: slack: rooms: - piwik:3HWhNh21qPfDACQXTrJOb0mW on_success: :change on_failure: :change irc: skip_join: true on_success: change on_failure: change channels: - "irc.freenode.org#piwik-dev" template: - "%{repository} (%{commit}) : %{message} %{foo} " - "Build details: %{build_url}"