language: php dist: bionic cache: directories: - vendor - $HOME/.composer/cache before_install: - phpenv config-rm xdebug.ini || true - | if [ "x$COVERAGE" == "xyes" ]; then pecl install pcov-1.0.6 fi before_script: - | if [[ -n "$IMAGE" ]] then bash ./ci/travis/docker-run-mysql-or-mariadb.sh fi install: - | if [[ $TRAVIS_PHP_VERSION = "nightly" ]]; then export COMPOSER_FLAGS="--ignore-platform-reqs" fi - travis_retry composer -n install --prefer-dist $COMPOSER_FLAGS script: - | if [ "x$COVERAGE" == "xyes" ]; then ./vendor/bin/phpunit --configuration ci/travis/$DB.travis.xml --coverage-clover clover.xml else ./vendor/bin/phpunit --configuration ci/travis/$DB.travis.xml fi after_script: - | if [ "x$COVERAGE" == "xyes" ]; then travis_retry wget https://github.com/scrutinizer-ci/ocular/releases/download/1.5.2/ocular.phar travis_retry php ocular.phar code-coverage:upload --format=php-clover clover.xml fi jobs: include: - stage: Smoke Testing php: 7.4 env: DB=sqlite COVERAGE=yes - stage: Smoke Testing php: 7.4 env: PHPStan install: travis_retry composer install --prefer-dist script: vendor/bin/phpstan analyse - stage: Smoke Testing php: 7.4 env: PHP_CodeSniffer install: travis_retry composer install --prefer-dist script: vendor/bin/phpcs - stage: Test php: 7.3 env: DB=mysql.docker IMAGE=mysql:5.7 COVERAGE=yes - stage: Test php: 7.3 env: DB=mysql.docker IMAGE=mysql:8.0 COVERAGE=yes - stage: Test php: 7.3 env: DB=mysqli.docker IMAGE=mysql:5.7 COVERAGE=yes - stage: Test php: 7.3 env: DB=mysqli.docker IMAGE=mysql:8.0 COVERAGE=yes - stage: Test php: 7.3 env: DB=mariadb.docker IMAGE=mariadb:10.0 COVERAGE=yes - stage: Test php: 7.3 env: DB=mariadb.docker IMAGE=mariadb:10.1 COVERAGE=yes - stage: Test php: 7.3 env: DB=mariadb.docker IMAGE=mariadb:10.2 COVERAGE=yes - stage: Test php: 7.3 env: DB=mariadb.docker IMAGE=mariadb:10.3 COVERAGE=yes - stage: Test php: 7.3 env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.0 COVERAGE=yes - stage: Test php: 7.3 env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.1 COVERAGE=yes - stage: Test php: 7.3 env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.2 COVERAGE=yes - stage: Test php: 7.3 env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.3 COVERAGE=yes - stage: Test php: 7.3 env: DB=pgsql POSTGRESQL_VERSION=9.4 COVERAGE=yes addons: postgresql: "9.4" - stage: Test php: 7.3 env: DB=pgsql POSTGRESQL_VERSION=9.5 COVERAGE=yes addons: postgresql: "9.5" - stage: Test php: 7.3 env: DB=pgsql POSTGRESQL_VERSION=9.6 COVERAGE=yes addons: postgresql: "9.6" - stage: Test php: 7.3 env: DB=pgsql POSTGRESQL_VERSION=10.0 COVERAGE=yes sudo: required addons: postgresql: "10" before_script: - bash ./ci/travis/install-postgres-10.sh - stage: Test php: 7.3 env: DB=pgsql POSTGRESQL_VERSION=11.0 COVERAGE=yes sudo: required before_script: - bash ./ci/travis/install-postgres-11.sh - stage: Test php: 7.3 env: DB=sqlsrv COVERAGE=yes sudo: required before_script: - bash ./ci/travis/install-sqlsrv-dependencies.sh - bash ./ci/travis/install-mssql-sqlsrv.sh - bash ./ci/travis/install-mssql.sh - stage: Test php: 7.3 env: DB=pdo_sqlsrv COVERAGE=yes sudo: required before_script: - bash ./ci/travis/install-sqlsrv-dependencies.sh - bash ./ci/travis/install-mssql-pdo_sqlsrv.sh - bash ./ci/travis/install-mssql.sh - stage: Test php: 7.3 env: DB=ibm_db2 COVERAGE=yes sudo: required before_script: - bash ./ci/travis/install-db2.sh - bash ./ci/travis/install-db2-ibm_db2.sh - stage: Test php: 7.3 env: DB=sqlite DEPENDENCIES=low install: - travis_retry composer update --prefer-dist --prefer-lowest - stage: Test php: 7.4 env: DB=mysql.docker IMAGE=mysql:8.0 - stage: Test php: 7.4 env: DB=mysqli.docker IMAGE=mysql:8.0 - stage: Test php: 7.4 env: DB=mariadb.docker IMAGE=mariadb:10.3 - stage: Test php: 7.4 env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.3 - stage: Test php: 7.4 env: DB=pgsql POSTGRESQL_VERSION=11.0 sudo: required before_script: - bash ./ci/travis/install-postgres-11.sh - stage: Test php: 7.4 env: DB=sqlite - stage: Test php: 7.4 env: DB=sqlsrv sudo: required before_script: - bash ./ci/travis/install-sqlsrv-dependencies.sh - bash ./ci/travis/install-mssql-sqlsrv.sh - bash ./ci/travis/install-mssql.sh - stage: Test php: 7.4 env: DB=pdo_sqlsrv sudo: required before_script: - bash ./ci/travis/install-sqlsrv-dependencies.sh - bash ./ci/travis/install-mssql-pdo_sqlsrv.sh - bash ./ci/travis/install-mssql.sh - stage: Test php: nightly env: DB=mysql.docker IMAGE=mysql:8.0 - stage: Test php: nightly env: DB=mysqli.docker IMAGE=mysql:8.0 - stage: Test php: nightly env: DB=mariadb.docker IMAGE=mariadb:10.3 - stage: Test php: nightly env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.3 - stage: Test php: nightly env: DB=pgsql POSTGRESQL_VERSION=11.0 sudo: required before_script: - bash ./ci/travis/install-postgres-11.sh - stage: Test php: nightly env: DB=sqlite - stage: Test php: nightly env: DB=sqlsrv sudo: required before_script: - bash ./ci/travis/install-sqlsrv-dependencies.sh - bash ./ci/travis/install-mssql-sqlsrv.sh - bash ./ci/travis/install-mssql.sh - stage: Test php: nightly env: DB=pdo_sqlsrv sudo: required before_script: - bash ./ci/travis/install-sqlsrv-dependencies.sh - bash ./ci/travis/install-mssql-pdo_sqlsrv.sh - bash ./ci/travis/install-mssql.sh - stage: Test if: type = cron php: 7.3 env: DB=sqlite DEPENDENCIES=dev install: - composer config minimum-stability dev - travis_retry composer update --prefer-dist allow_failures: - env: DEPENDENCIES=dev - php: nightly