diff --git a/.travis.yml b/.travis.yml
index cac4d984d5..8048a7be51 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,5 @@
language: php
-sudo: false
-dist: trusty
+dist: xenial
cache:
directories:
@@ -112,6 +111,8 @@ jobs:
- stage: Test
php: 7.3
env: DB=mysql COVERAGE=yes
+ services:
+ - mysql
- stage: Test
php: 7.3
env: DB=mysql.docker MYSQL_VERSION=5.7 COVERAGE=yes
@@ -129,6 +130,8 @@ jobs:
- stage: Test
php: 7.3
env: DB=mysqli COVERAGE=yes
+ services:
+ - mysql
- stage: Test
php: 7.3
env: DB=mysqli.docker MYSQL_VERSION=5.7 COVERAGE=yes
@@ -145,14 +148,11 @@ jobs:
- bash ./tests/travis/install-mysql-8.0.sh
- stage: Test
php: 7.3
- env: DB=mariadb MARIADB_VERSION=10.0 COVERAGE=yes
- addons:
- mariadb: 10.0
- - stage: Test
- php: 7.3
- env: DB=mariadb MARIADB_VERSION=10.1 COVERAGE=yes
- addons:
- mariadb: 10.1
+ env: DB=mariadb.docker MARIADB_VERSION=10.1 COVERAGE=yes
+ services:
+ - docker
+ before_script:
+ - bash ./tests/travis/install-mariadb.sh
- stage: Test
php: 7.3
env: DB=mariadb MARIADB_VERSION=10.2 COVERAGE=yes
@@ -165,14 +165,11 @@ jobs:
mariadb: 10.3
- stage: Test
php: 7.3
- env: DB=mariadb.mysqli MARIADB_VERSION=10.0 COVERAGE=yes
- addons:
- mariadb: 10.0
- - stage: Test
- php: 7.3
- env: DB=mariadb.mysqli MARIADB_VERSION=10.1 COVERAGE=yes
- addons:
- mariadb: 10.1
+ env: DB=mariadb.mysqli.docker MARIADB_VERSION=10.1 COVERAGE=yes
+ services:
+ - docker
+ before_script:
+ - bash ./tests/travis/install-mariadb.sh
- stage: Test
php: 7.3
env: DB=mariadb.mysqli MARIADB_VERSION=10.2 COVERAGE=yes
@@ -183,49 +180,27 @@ jobs:
env: DB=mariadb.mysqli MARIADB_VERSION=10.3 COVERAGE=yes
addons:
mariadb: 10.3
- - stage: Test
- php: 7.3
- env: DB=pgsql POSTGRESQL_VERSION=9.2 COVERAGE=yes
- services:
- - postgresql
- addons:
- postgresql: "9.2"
- - stage: Test
- php: 7.3
- env: DB=pgsql POSTGRESQL_VERSION=9.3 COVERAGE=yes
- services:
- - postgresql
- addons:
- postgresql: "9.3"
- stage: Test
php: 7.3
env: DB=pgsql POSTGRESQL_VERSION=9.4 COVERAGE=yes
- services:
- - postgresql
addons:
postgresql: "9.4"
- stage: Test
php: 7.3
env: DB=pgsql POSTGRESQL_VERSION=9.5 COVERAGE=yes
- services:
- - postgresql
addons:
postgresql: "9.5"
- stage: Test
php: 7.3
env: DB=pgsql POSTGRESQL_VERSION=9.6 COVERAGE=yes
- services:
- - postgresql
addons:
postgresql: "9.6"
- stage: Test
php: 7.3
env: DB=pgsql POSTGRESQL_VERSION=10.0 COVERAGE=yes
sudo: required
- services:
- - postgresql
addons:
- postgresql: "9.6"
+ postgresql: "10"
before_script:
- bash ./tests/travis/install-postgres-10.sh
- stage: Test
diff --git a/tests/travis/create-mysql-schema.sql b/tests/travis/create-mysql-schema.sql
index 4e331838cf..78a3235806 100644
--- a/tests/travis/create-mysql-schema.sql
+++ b/tests/travis/create-mysql-schema.sql
@@ -1,3 +1,6 @@
+DROP USER IF EXISTS 'travis'@'%';
+CREATE USER 'travis'@'%';
+
CREATE SCHEMA doctrine_tests;
CREATE SCHEMA test_create_database;
CREATE SCHEMA test_drop_database;
diff --git a/tests/travis/install-mariadb.sh b/tests/travis/install-mariadb.sh
new file mode 100644
index 0000000000..cda81e9bcb
--- /dev/null
+++ b/tests/travis/install-mariadb.sh
@@ -0,0 +1,13 @@
+#!/usr/bin/env bash
+
+set -ex
+
+sudo docker run \
+ -d \
+ -e MYSQL_ALLOW_EMPTY_PASSWORD=yes \
+ -e MYSQL_DATABASE=doctrine_tests \
+ -p 33306:3306 \
+ --name mariadb \
+ mariadb:${MARIADB_VERSION}
+
+sudo docker exec -i mariadb bash <<< 'until echo \\q | mysql doctrine_tests > /dev/null 2>&1 ; do sleep 1; done'
diff --git a/tests/travis/install-sqlsrv-dependencies.sh b/tests/travis/install-sqlsrv-dependencies.sh
index 137b2a9570..ff91bfdfaf 100644
--- a/tests/travis/install-sqlsrv-dependencies.sh
+++ b/tests/travis/install-sqlsrv-dependencies.sh
@@ -5,6 +5,6 @@ set -ex
echo Installing driver dependencies
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
-curl https://packages.microsoft.com/config/ubuntu/14.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql.list
+curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql.list
sudo apt-get update
ACCEPT_EULA=Y sudo apt-get install -qy msodbcsql17 unixodbc unixodbc-dev libssl1.0.0
diff --git a/tests/travis/mariadb.docker.travis.xml b/tests/travis/mariadb.docker.travis.xml
new file mode 100644
index 0000000000..fa6617c094
--- /dev/null
+++ b/tests/travis/mariadb.docker.travis.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ../Doctrine/Tests/DBAL
+
+
+
+
+
+ ../../lib/Doctrine
+
+
+
+
+
+ performance
+ locking_functional
+
+
+
diff --git a/tests/travis/mariadb.mysqli.docker.travis.xml b/tests/travis/mariadb.mysqli.docker.travis.xml
new file mode 100644
index 0000000000..679415d7a1
--- /dev/null
+++ b/tests/travis/mariadb.mysqli.docker.travis.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ../Doctrine/Tests/DBAL
+
+
+
+
+
+ ../../lib/Doctrine
+
+
+
+
+
+ performance
+ locking_functional
+
+
+
diff --git a/tests/travis/mariadb.mysqli.travis.xml b/tests/travis/mariadb.mysqli.travis.xml
index dfc62d307c..b8bd9be01c 100644
--- a/tests/travis/mariadb.mysqli.travis.xml
+++ b/tests/travis/mariadb.mysqli.travis.xml
@@ -2,7 +2,6 @@
-