# 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/matomo-org/travis-scripts/blob/master/generator/templates/travis.yml.twig # 2) commit the updated submodule in `matomo/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 services: - redis-server - mysql addons: apt: packages: - nginx - coreutils - lftp git: lfs_skip_smudge: true # Separate different test suites env: global: - PIWIK_ROOT_DIR=$TRAVIS_BUILD_DIR matrix: fast_finish: true include: # PDO Mysql - php: 7.2 env: TEST_SUITE=SystemTestsCore MYSQL_ADAPTER=PDO_MYSQL sudo: required - php: 7.2 env: TEST_SUITE=SystemTestsPlugins MYSQL_ADAPTER=PDO_MYSQL sudo: required - php: 7.2 env: TEST_SUITE=IntegrationTestsCore MYSQL_ADAPTER=PDO_MYSQL sudo: required - php: 7.2 env: TEST_SUITE=IntegrationTestsPlugins MYSQL_ADAPTER=PDO_MYSQL sudo: required - php: 7.2 env: TEST_SUITE=UnitTests MYSQL_ADAPTER=PDO_MYSQL sudo: false addons: false # Javascript tests - php: 7.2 env: TEST_SUITE=JavascriptTests MYSQL_ADAPTER=PDO_MYSQL sudo: false service: - mysql addons: apt: packages: - nginx - coreutils - php: 7.2 env: TEST_SUITE=AngularJSTests MYSQL_ADAPTER=PDO_MYSQL SKIP_COMPOSER_INSTALL=1 sudo: false addons: false # All tests after another - php: 8.1 env: TEST_SUITE=AllTests MYSQL_ADAPTER=MYSQLI ALLTEST_EXTRA_OPTIONS="--run-first-half-only" SKIP_COMPOSER_INSTALL=1 sudo: required before_install: - composer install --ignore-platform-reqs - composer remove --dev phpunit/phpunit - composer require --dev phpunit/phpunit ~9.3 --ignore-platform-reqs - php: 8.1 env: TEST_SUITE=AllTests MYSQL_ADAPTER=MYSQLI ALLTEST_EXTRA_OPTIONS="--run-second-half-only" SKIP_COMPOSER_INSTALL=1 sudo: required before_install: - composer install --ignore-platform-reqs - composer remove --dev phpunit/phpunit - composer require --dev phpunit/phpunit ~9.3 --ignore-platform-reqs # UITests use a specific version because the default 5.5 (== 5.5.38) is missing FreeType support - php: 7.2 env: TEST_SUITE=UITests MYSQL_ADAPTER=PDO_MYSQL UITEST_EXTRA_OPTIONS="--num-test-groups=3 --test-group=0" dist: bionic sudo: false - php: 7.2 env: TEST_SUITE=UITests MYSQL_ADAPTER=PDO_MYSQL UITEST_EXTRA_OPTIONS="--num-test-groups=3 --test-group=1" dist: bionic sudo: false - php: 7.2 env: TEST_SUITE=UITests MYSQL_ADAPTER=PDO_MYSQL UITEST_EXTRA_OPTIONS="--num-test-groups=3 --test-group=2" dist: bionic sudo: false dist: bionic 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 --distribution=\"bionic\" --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: - phpenv config-rm xdebug.ini # 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 - ./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/matomo.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: - $HOME/.composer/cache - $PIWIK_ROOT_DIR/../travis_woff2