From 8ed87e16dc90d074a8670ec689b25807c4ab9ec2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= Date: Fri, 28 Feb 2020 22:01:51 +0100 Subject: [PATCH 1/7] Use Docker consistently When a Docker version of the build is available, use it. --- .travis.yml | 74 ++++++++++++++------------ tests/travis/mariadb.mysqli.travis.xml | 45 ---------------- tests/travis/mariadb.travis.xml | 45 ---------------- tests/travis/mysql.travis.xml | 45 ---------------- tests/travis/mysqli.travis.xml | 45 ---------------- 5 files changed, 40 insertions(+), 214 deletions(-) delete mode 100644 tests/travis/mariadb.mysqli.travis.xml delete mode 100644 tests/travis/mariadb.travis.xml delete mode 100644 tests/travis/mysql.travis.xml delete mode 100644 tests/travis/mysqli.travis.xml diff --git a/.travis.yml b/.travis.yml index 8048a7be510..c679c005ccf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -69,14 +69,18 @@ jobs: - bash ./tests/travis/install-mysql-8.0.sh - stage: Test php: 7.2 - env: DB=mariadb MARIADB_VERSION=10.3 - addons: - mariadb: 10.3 + env: DB=mariadb.docker MARIADB_VERSION=10.3 + services: + - docker + before_script: + - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.2 - env: DB=mariadb.mysqli MARIADB_VERSION=10.3 - addons: - mariadb: 10.3 + env: DB=mariadb.mysqli.docker MARIADB_VERSION=10.3 + services: + - docker + before_script: + - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.2 env: DB=pgsql POSTGRESQL_VERSION=11.0 @@ -108,11 +112,6 @@ jobs: - bash ./tests/travis/install-sqlsrv-dependencies.sh - bash ./tests/travis/install-mssql-pdo_sqlsrv.sh - bash ./tests/travis/install-mssql.sh - - 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 @@ -127,11 +126,6 @@ jobs: - docker before_script: - bash ./tests/travis/install-mysql-8.0.sh - - 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 @@ -155,14 +149,18 @@ jobs: - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.3 - env: DB=mariadb MARIADB_VERSION=10.2 COVERAGE=yes - addons: - mariadb: 10.2 + env: DB=mariadb.docker MARIADB_VERSION=10.2 COVERAGE=yes + services: + - docker + before_script: + - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.3 - env: DB=mariadb MARIADB_VERSION=10.3 COVERAGE=yes - addons: - mariadb: 10.3 + env: DB=mariadb.docker MARIADB_VERSION=10.3 COVERAGE=yes + services: + - docker + before_script: + - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.3 env: DB=mariadb.mysqli.docker MARIADB_VERSION=10.1 COVERAGE=yes @@ -172,14 +170,18 @@ jobs: - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.3 - env: DB=mariadb.mysqli MARIADB_VERSION=10.2 COVERAGE=yes - addons: - mariadb: 10.2 + env: DB=mariadb.mysqli.docker MARIADB_VERSION=10.2 COVERAGE=yes + services: + - docker + before_script: + - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.3 - env: DB=mariadb.mysqli MARIADB_VERSION=10.3 COVERAGE=yes - addons: - mariadb: 10.3 + env: DB=mariadb.mysqli.docker MARIADB_VERSION=10.3 COVERAGE=yes + services: + - docker + before_script: + - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.3 env: DB=pgsql POSTGRESQL_VERSION=9.4 COVERAGE=yes @@ -263,14 +265,18 @@ jobs: - bash ./tests/travis/install-mysql-8.0.sh - stage: Test php: 7.4snapshot - env: DB=mariadb MARIADB_VERSION=10.3 - addons: - mariadb: 10.3 + env: DB=mariadb.docker MARIADB_VERSION=10.3 + services: + - docker + before_script: + - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.4snapshot - env: DB=mariadb.mysqli MARIADB_VERSION=10.3 - addons: - mariadb: 10.3 + env: DB=mariadb.mysqli.docker MARIADB_VERSION=10.3 + services: + - docker + before_script: + - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.4snapshot env: DB=pgsql POSTGRESQL_VERSION=11.0 diff --git a/tests/travis/mariadb.mysqli.travis.xml b/tests/travis/mariadb.mysqli.travis.xml deleted file mode 100644 index b8bd9be01cd..00000000000 --- a/tests/travis/mariadb.mysqli.travis.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - ../Doctrine/Tests/DBAL - - - - - - ../../lib/Doctrine - - - - - - performance - locking_functional - - - diff --git a/tests/travis/mariadb.travis.xml b/tests/travis/mariadb.travis.xml deleted file mode 100644 index 0d4e2c43c9e..00000000000 --- a/tests/travis/mariadb.travis.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - ../Doctrine/Tests/DBAL - - - - - - ../../lib/Doctrine - - - - - - performance - locking_functional - - - diff --git a/tests/travis/mysql.travis.xml b/tests/travis/mysql.travis.xml deleted file mode 100644 index 0d4e2c43c9e..00000000000 --- a/tests/travis/mysql.travis.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - ../Doctrine/Tests/DBAL - - - - - - ../../lib/Doctrine - - - - - - performance - locking_functional - - - diff --git a/tests/travis/mysqli.travis.xml b/tests/travis/mysqli.travis.xml deleted file mode 100644 index b8bd9be01cd..00000000000 --- a/tests/travis/mysqli.travis.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - ../Doctrine/Tests/DBAL - - - - - - ../../lib/Doctrine - - - - - - performance - locking_functional - - - From 7475993061a92e72131bc680429411cfb76566a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= Date: Fri, 28 Feb 2020 22:15:22 +0100 Subject: [PATCH 2/7] Stop using snapshot image PHP 7.4 has stable versions now. --- .travis.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index c679c005ccf..df61d4a44eb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -248,7 +248,7 @@ jobs: install: - travis_retry composer update --prefer-dist --prefer-lowest - stage: Test - php: 7.4snapshot + php: 7.4 env: DB=mysql.docker MYSQL_VERSION=8.0 sudo: required services: @@ -256,7 +256,7 @@ jobs: before_script: - bash ./tests/travis/install-mysql-8.0.sh - stage: Test - php: 7.4snapshot + php: 7.4 env: DB=mysqli.docker MYSQL_VERSION=8.0 sudo: required services: @@ -264,21 +264,21 @@ jobs: before_script: - bash ./tests/travis/install-mysql-8.0.sh - stage: Test - php: 7.4snapshot + php: 7.4 env: DB=mariadb.docker MARIADB_VERSION=10.3 services: - docker before_script: - bash ./tests/travis/install-mariadb.sh - stage: Test - php: 7.4snapshot + php: 7.4 env: DB=mariadb.mysqli.docker MARIADB_VERSION=10.3 services: - docker before_script: - bash ./tests/travis/install-mariadb.sh - stage: Test - php: 7.4snapshot + php: 7.4 env: DB=pgsql POSTGRESQL_VERSION=11.0 sudo: required services: @@ -286,10 +286,10 @@ jobs: before_script: - bash ./tests/travis/install-postgres-11.sh - stage: Test - php: 7.4snapshot + php: 7.4 env: DB=sqlite - stage: Test - php: 7.4snapshot + php: 7.4 env: DB=sqlsrv sudo: required services: @@ -299,7 +299,7 @@ jobs: - bash ./tests/travis/install-mssql-sqlsrv.sh - bash ./tests/travis/install-mssql.sh - stage: Test - php: 7.4snapshot + php: 7.4 env: DB=pdo_sqlsrv sudo: required services: From 765432ad6c3db13433572b1166a9a80f919b0906 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= Date: Fri, 28 Feb 2020 23:01:23 +0100 Subject: [PATCH 3/7] Replace external health check with native one Hopefully it will work more reliably. --- tests/travis/install-mariadb.sh | 7 ++++++- tests/travis/install-mysql-5.7.sh | 7 ++++++- tests/travis/install-mysql-8.0.sh | 7 ++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/tests/travis/install-mariadb.sh b/tests/travis/install-mariadb.sh index cda81e9bcba..b089c3b25fb 100644 --- a/tests/travis/install-mariadb.sh +++ b/tests/travis/install-mariadb.sh @@ -3,6 +3,7 @@ set -ex sudo docker run \ + --health-cmd='mysqladmin ping --silent' \ -d \ -e MYSQL_ALLOW_EMPTY_PASSWORD=yes \ -e MYSQL_DATABASE=doctrine_tests \ @@ -10,4 +11,8 @@ sudo docker run \ --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' +until [ "$(sudo docker inspect --format "{{json .State.Health.Status }}" mariadb)" == "\"healthy\"" ] +do + echo "Waiting for MariaDB to become ready…" + sleep 1 +done diff --git a/tests/travis/install-mysql-5.7.sh b/tests/travis/install-mysql-5.7.sh index 25459382c6f..8967166635a 100644 --- a/tests/travis/install-mysql-5.7.sh +++ b/tests/travis/install-mysql-5.7.sh @@ -5,6 +5,7 @@ set -ex echo "Starting MySQL 5.7..." sudo docker run \ + --health-cmd='mysqladmin ping --silent' \ -d \ -e MYSQL_ALLOW_EMPTY_PASSWORD=yes \ -e MYSQL_DATABASE=doctrine_tests \ @@ -12,4 +13,8 @@ sudo docker run \ --name mysql57 \ mysql:5.7 -sudo docker exec -i mysql57 bash <<< 'until echo \\q | mysql doctrine_tests > /dev/null 2>&1 ; do sleep 1; done' +until [ "$(sudo docker inspect --format "{{json .State.Health.Status }}" mysql57)" == "\"healthy\"" ] +do + echo "Waiting for MySQL to become ready…" + sleep 1 +done diff --git a/tests/travis/install-mysql-8.0.sh b/tests/travis/install-mysql-8.0.sh index 952a4300ba7..79d72a263c8 100644 --- a/tests/travis/install-mysql-8.0.sh +++ b/tests/travis/install-mysql-8.0.sh @@ -6,6 +6,7 @@ echo "Starting MySQL 8.0..." sudo docker pull mysql:8.0 sudo docker run \ + --health-cmd='mysqladmin ping --silent' \ -d \ -e MYSQL_ALLOW_EMPTY_PASSWORD=yes \ -e MYSQL_DATABASE=doctrine_tests \ @@ -14,4 +15,8 @@ sudo docker run \ mysql:8.0 \ --default-authentication-plugin=mysql_native_password -sudo docker exec -i mysql80 bash <<< 'until echo \\q | mysql doctrine_tests > /dev/null 2>&1 ; do sleep 1; done' +until [ "$(sudo docker inspect --format "{{json .State.Health.Status }}" mysql80)" == "\"healthy\"" ] +do + echo "Waiting for MySQL to become ready…" + sleep 1 +done From e7aef4e8ba64ff5ba72ea427cfa2a09b42801522 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= Date: Sat, 29 Feb 2020 11:30:33 +0100 Subject: [PATCH 4/7] Refactor MySQL and MariaDB run in a single script --- .travis.yml | 86 ++++++--------------- tests/travis/create-mysql-schema.sql | 10 --- tests/travis/docker-run-mysql-or-mariadb.sh | 42 ++++++++++ tests/travis/install-mariadb.sh | 18 ----- tests/travis/install-mysql-5.7.sh | 20 ----- tests/travis/install-mysql-8.0.sh | 22 ------ 6 files changed, 65 insertions(+), 133 deletions(-) delete mode 100644 tests/travis/create-mysql-schema.sql create mode 100644 tests/travis/docker-run-mysql-or-mariadb.sh delete mode 100644 tests/travis/install-mariadb.sh delete mode 100644 tests/travis/install-mysql-5.7.sh delete mode 100644 tests/travis/install-mysql-8.0.sh diff --git a/.travis.yml b/.travis.yml index df61d4a44eb..63fe477c054 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,7 +14,11 @@ before_install: fi before_script: - - if [[ "$DB" == "mysql" || "$DB" == "mysqli" || "$DB" == *"mariadb"* ]]; then mysql < tests/travis/create-mysql-schema.sql; fi; + - | + if [[ -n "$IMAGE" ]] + then + bash ./tests/travis/docker-run-mysql-or-mariadb.sh + fi install: - travis_retry composer -n install --prefer-dist @@ -53,34 +57,24 @@ jobs: - stage: Test php: 7.2 - env: DB=mysql.docker MYSQL_VERSION=8.0 - sudo: required + env: DB=mysql.docker IMAGE=mysql:8.0 services: - docker - before_script: - - bash ./tests/travis/install-mysql-8.0.sh - stage: Test php: 7.2 - env: DB=mysqli.docker MYSQL_VERSION=8.0 - sudo: required + env: DB=mysqli.docker IMAGE=mysql:8.0 services: - docker - before_script: - - bash ./tests/travis/install-mysql-8.0.sh - stage: Test php: 7.2 - env: DB=mariadb.docker MARIADB_VERSION=10.3 + env: DB=mariadb.docker IMAGE=mariadb:10.3 services: - docker - before_script: - - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.2 - env: DB=mariadb.mysqli.docker MARIADB_VERSION=10.3 + env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.3 services: - docker - before_script: - - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.2 env: DB=pgsql POSTGRESQL_VERSION=11.0 @@ -114,74 +108,50 @@ jobs: - bash ./tests/travis/install-mssql.sh - stage: Test php: 7.3 - env: DB=mysql.docker MYSQL_VERSION=5.7 COVERAGE=yes - sudo: required - before_script: - - bash ./tests/travis/install-mysql-5.7.sh + env: DB=mysql.docker IMAGE=mysql:5.7 COVERAGE=yes - stage: Test php: 7.3 - env: DB=mysql.docker MYSQL_VERSION=8.0 COVERAGE=yes - sudo: required + env: DB=mysql.docker IMAGE=mysql:8.0 COVERAGE=yes services: - docker - before_script: - - bash ./tests/travis/install-mysql-8.0.sh - stage: Test php: 7.3 - env: DB=mysqli.docker MYSQL_VERSION=5.7 COVERAGE=yes - sudo: required - before_script: - - bash ./tests/travis/install-mysql-5.7.sh + env: DB=mysqli.docker IMAGE=mysql:5.7 COVERAGE=yes - stage: Test php: 7.3 - env: DB=mysqli.docker MYSQL_VERSION=8.0 COVERAGE=yes - sudo: required + env: DB=mysqli.docker IMAGE=mysql:8.0 COVERAGE=yes services: - docker - before_script: - - bash ./tests/travis/install-mysql-8.0.sh - stage: Test php: 7.3 - env: DB=mariadb.docker MARIADB_VERSION=10.1 COVERAGE=yes + env: DB=mariadb.docker IMAGE=mariadb:10.1 COVERAGE=yes services: - docker - before_script: - - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.3 - env: DB=mariadb.docker MARIADB_VERSION=10.2 COVERAGE=yes + env: DB=mariadb.docker IMAGE=mariadb:10.2 COVERAGE=yes services: - docker - before_script: - - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.3 - env: DB=mariadb.docker MARIADB_VERSION=10.3 COVERAGE=yes + env: DB=mariadb.docker IMAGE=mariadb:10.3 COVERAGE=yes services: - docker - before_script: - - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.3 - env: DB=mariadb.mysqli.docker MARIADB_VERSION=10.1 COVERAGE=yes + env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.1 COVERAGE=yes services: - docker - before_script: - - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.3 - env: DB=mariadb.mysqli.docker MARIADB_VERSION=10.2 COVERAGE=yes + env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.2 COVERAGE=yes services: - docker - before_script: - - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.3 - env: DB=mariadb.mysqli.docker MARIADB_VERSION=10.3 COVERAGE=yes + env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.3 COVERAGE=yes services: - docker - before_script: - - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.3 env: DB=pgsql POSTGRESQL_VERSION=9.4 COVERAGE=yes @@ -249,34 +219,24 @@ jobs: - travis_retry composer update --prefer-dist --prefer-lowest - stage: Test php: 7.4 - env: DB=mysql.docker MYSQL_VERSION=8.0 - sudo: required + env: DB=mysql.docker IMAGE=mysql:8.0 services: - docker - before_script: - - bash ./tests/travis/install-mysql-8.0.sh - stage: Test php: 7.4 - env: DB=mysqli.docker MYSQL_VERSION=8.0 - sudo: required + env: DB=mysqli.docker IMAGE=mysql:8.0 services: - docker - before_script: - - bash ./tests/travis/install-mysql-8.0.sh - stage: Test php: 7.4 - env: DB=mariadb.docker MARIADB_VERSION=10.3 + env: DB=mariadb.docker IMAGE=mariadb:10.3 services: - docker - before_script: - - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.4 - env: DB=mariadb.mysqli.docker MARIADB_VERSION=10.3 + env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.3 services: - docker - before_script: - - bash ./tests/travis/install-mariadb.sh - stage: Test php: 7.4 env: DB=pgsql POSTGRESQL_VERSION=11.0 diff --git a/tests/travis/create-mysql-schema.sql b/tests/travis/create-mysql-schema.sql deleted file mode 100644 index 78a32358065..00000000000 --- a/tests/travis/create-mysql-schema.sql +++ /dev/null @@ -1,10 +0,0 @@ -DROP USER IF EXISTS 'travis'@'%'; -CREATE USER 'travis'@'%'; - -CREATE SCHEMA doctrine_tests; -CREATE SCHEMA test_create_database; -CREATE SCHEMA test_drop_database; - -GRANT ALL PRIVILEGES ON doctrine_tests.* to travis@'%'; -GRANT ALL PRIVILEGES ON test_create_database.* to travis@'%'; -GRANT ALL PRIVILEGES ON test_drop_database.* to travis@'%'; diff --git a/tests/travis/docker-run-mysql-or-mariadb.sh b/tests/travis/docker-run-mysql-or-mariadb.sh new file mode 100644 index 00000000000..1b8d4c12772 --- /dev/null +++ b/tests/travis/docker-run-mysql-or-mariadb.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +set -ex + +echo "Starting RDBMS…">&2 + +if [[ "$IMAGE" == "mysql:8.0" ]] +then + CMD_OPTIONS="--default-authentication-plugin=mysql_native_password" +else + CMD_OPTIONS="" +fi + +docker run \ + --health-cmd='mysqladmin ping --silent' \ + --detach \ + --env MYSQL_ALLOW_EMPTY_PASSWORD=yes \ + --env MYSQL_DATABASE=doctrine_tests \ + --publish 33306:3306 \ + --name rdbms \ + "$IMAGE" $CMD_OPTIONS + +while true; do + healthStatus=$(docker inspect --format "{{json .State.Health.Status }}" rdbms) + case $healthStatus in + '"starting"') + echo "Waiting for RDBMS to become ready…">&2 + sleep 1 + ;; + '"healthy"') + echo "Container is healthy">&2 + break + ;; + '"unhealthy"') + echo "Container is unhealthy">&2 + exit 1 + ;; + *) + echo "Unexpected health status $healthStatus…">&2 + ;; + esac +done diff --git a/tests/travis/install-mariadb.sh b/tests/travis/install-mariadb.sh deleted file mode 100644 index b089c3b25fb..00000000000 --- a/tests/travis/install-mariadb.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -set -ex - -sudo docker run \ - --health-cmd='mysqladmin ping --silent' \ - -d \ - -e MYSQL_ALLOW_EMPTY_PASSWORD=yes \ - -e MYSQL_DATABASE=doctrine_tests \ - -p 33306:3306 \ - --name mariadb \ - mariadb:${MARIADB_VERSION} - -until [ "$(sudo docker inspect --format "{{json .State.Health.Status }}" mariadb)" == "\"healthy\"" ] -do - echo "Waiting for MariaDB to become ready…" - sleep 1 -done diff --git a/tests/travis/install-mysql-5.7.sh b/tests/travis/install-mysql-5.7.sh deleted file mode 100644 index 8967166635a..00000000000 --- a/tests/travis/install-mysql-5.7.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -set -ex - -echo "Starting MySQL 5.7..." - -sudo docker run \ - --health-cmd='mysqladmin ping --silent' \ - -d \ - -e MYSQL_ALLOW_EMPTY_PASSWORD=yes \ - -e MYSQL_DATABASE=doctrine_tests \ - -p 33306:3306 \ - --name mysql57 \ - mysql:5.7 - -until [ "$(sudo docker inspect --format "{{json .State.Health.Status }}" mysql57)" == "\"healthy\"" ] -do - echo "Waiting for MySQL to become ready…" - sleep 1 -done diff --git a/tests/travis/install-mysql-8.0.sh b/tests/travis/install-mysql-8.0.sh deleted file mode 100644 index 79d72a263c8..00000000000 --- a/tests/travis/install-mysql-8.0.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -set -ex - -echo "Starting MySQL 8.0..." - -sudo docker pull mysql:8.0 -sudo docker run \ - --health-cmd='mysqladmin ping --silent' \ - -d \ - -e MYSQL_ALLOW_EMPTY_PASSWORD=yes \ - -e MYSQL_DATABASE=doctrine_tests \ - -p 33306:3306 \ - --name mysql80 \ - mysql:8.0 \ - --default-authentication-plugin=mysql_native_password - -until [ "$(sudo docker inspect --format "{{json .State.Health.Status }}" mysql80)" == "\"healthy\"" ] -do - echo "Waiting for MySQL to become ready…" - sleep 1 -done From 6e5fbcb92fde8deba09337762cb76a55a8daed22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= Date: Sat, 29 Feb 2020 17:32:30 +0100 Subject: [PATCH 5/7] Do not enable docker explicitely It seems to be enabled by default. --- .travis.yml | 52 --------------------- tests/travis/docker-run-mysql-or-mariadb.sh | 2 +- 2 files changed, 1 insertion(+), 53 deletions(-) diff --git a/.travis.yml b/.travis.yml index 63fe477c054..9fee4c4b8b6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -58,29 +58,19 @@ jobs: - stage: Test php: 7.2 env: DB=mysql.docker IMAGE=mysql:8.0 - services: - - docker - stage: Test php: 7.2 env: DB=mysqli.docker IMAGE=mysql:8.0 - services: - - docker - stage: Test php: 7.2 env: DB=mariadb.docker IMAGE=mariadb:10.3 - services: - - docker - stage: Test php: 7.2 env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.3 - services: - - docker - stage: Test php: 7.2 env: DB=pgsql POSTGRESQL_VERSION=11.0 sudo: required - services: - - docker before_script: - bash ./tests/travis/install-postgres-11.sh - stage: Test @@ -90,8 +80,6 @@ jobs: php: 7.2 env: DB=sqlsrv sudo: required - services: - - docker before_script: - bash ./tests/travis/install-sqlsrv-dependencies.sh - bash ./tests/travis/install-mssql-sqlsrv.sh @@ -100,8 +88,6 @@ jobs: php: 7.2 env: DB=pdo_sqlsrv sudo: required - services: - - docker before_script: - bash ./tests/travis/install-sqlsrv-dependencies.sh - bash ./tests/travis/install-mssql-pdo_sqlsrv.sh @@ -112,46 +98,30 @@ jobs: - stage: Test php: 7.3 env: DB=mysql.docker IMAGE=mysql:8.0 COVERAGE=yes - services: - - docker - 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 - services: - - docker - stage: Test php: 7.3 env: DB=mariadb.docker IMAGE=mariadb:10.1 COVERAGE=yes - services: - - docker - stage: Test php: 7.3 env: DB=mariadb.docker IMAGE=mariadb:10.2 COVERAGE=yes - services: - - docker - stage: Test php: 7.3 env: DB=mariadb.docker IMAGE=mariadb:10.3 COVERAGE=yes - services: - - docker - stage: Test php: 7.3 env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.1 COVERAGE=yes - services: - - docker - stage: Test php: 7.3 env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.2 COVERAGE=yes - services: - - docker - stage: Test php: 7.3 env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.3 COVERAGE=yes - services: - - docker - stage: Test php: 7.3 env: DB=pgsql POSTGRESQL_VERSION=9.4 COVERAGE=yes @@ -179,16 +149,12 @@ jobs: php: 7.3 env: DB=pgsql POSTGRESQL_VERSION=11.0 COVERAGE=yes sudo: required - services: - - docker before_script: - bash ./tests/travis/install-postgres-11.sh - stage: Test php: 7.3 env: DB=sqlsrv COVERAGE=yes sudo: required - services: - - docker before_script: - bash ./tests/travis/install-sqlsrv-dependencies.sh - bash ./tests/travis/install-mssql-sqlsrv.sh @@ -197,8 +163,6 @@ jobs: php: 7.3 env: DB=pdo_sqlsrv COVERAGE=yes sudo: required - services: - - docker before_script: - bash ./tests/travis/install-sqlsrv-dependencies.sh - bash ./tests/travis/install-mssql-pdo_sqlsrv.sh @@ -207,8 +171,6 @@ jobs: php: 7.3 env: DB=ibm_db2 COVERAGE=yes sudo: required - services: - - docker before_script: - bash ./tests/travis/install-db2.sh - bash ./tests/travis/install-db2-ibm_db2.sh @@ -220,29 +182,19 @@ jobs: - stage: Test php: 7.4 env: DB=mysql.docker IMAGE=mysql:8.0 - services: - - docker - stage: Test php: 7.4 env: DB=mysqli.docker IMAGE=mysql:8.0 - services: - - docker - stage: Test php: 7.4 env: DB=mariadb.docker IMAGE=mariadb:10.3 - services: - - docker - stage: Test php: 7.4 env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.3 - services: - - docker - stage: Test php: 7.4 env: DB=pgsql POSTGRESQL_VERSION=11.0 sudo: required - services: - - docker before_script: - bash ./tests/travis/install-postgres-11.sh - stage: Test @@ -252,8 +204,6 @@ jobs: php: 7.4 env: DB=sqlsrv sudo: required - services: - - docker before_script: - bash ./tests/travis/install-sqlsrv-dependencies.sh - bash ./tests/travis/install-mssql-sqlsrv.sh @@ -262,8 +212,6 @@ jobs: php: 7.4 env: DB=pdo_sqlsrv sudo: required - services: - - docker before_script: - bash ./tests/travis/install-sqlsrv-dependencies.sh - bash ./tests/travis/install-mssql-pdo_sqlsrv.sh diff --git a/tests/travis/docker-run-mysql-or-mariadb.sh b/tests/travis/docker-run-mysql-or-mariadb.sh index 1b8d4c12772..a78ce4adb6e 100644 --- a/tests/travis/docker-run-mysql-or-mariadb.sh +++ b/tests/travis/docker-run-mysql-or-mariadb.sh @@ -36,7 +36,7 @@ while true; do exit 1 ;; *) - echo "Unexpected health status $healthStatus…">&2 + echo "Unexpected health status $healthStatus">&2 ;; esac done From 398f23eace85bd0f67e2dcb9ed23c0ca1e3a42a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= Date: Sat, 29 Feb 2020 19:04:04 +0100 Subject: [PATCH 6/7] Synchronize the number of code coverage runs --- .scrutinizer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scrutinizer.yml b/.scrutinizer.yml index a3b8a5621ca..aeca6bd5d5c 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -21,7 +21,7 @@ before_commands: tools: external_code_coverage: timeout: 3600 - runs: 30 # 25x Travis (jobs with COVERAGE=yes) + 3x AppVeyor (jobs with coverage=yes) + 2x ContinuousPHP + runs: 24 # 19x Travis (jobs with COVERAGE=yes) + 3x AppVeyor (jobs with coverage=yes) + 2x ContinuousPHP filter: excluded_paths: From 6e505dec525530b406d0090b8d7a90a1952edf03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= Date: Sat, 29 Feb 2020 21:02:05 +0100 Subject: [PATCH 7/7] Continue testing unsupported versions They are no longer supported by their vendors, but until we do support them, we should continue testing them. --- .scrutinizer.yml | 2 +- .travis.yml | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/.scrutinizer.yml b/.scrutinizer.yml index aeca6bd5d5c..cb9872f6761 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -21,7 +21,7 @@ before_commands: tools: external_code_coverage: timeout: 3600 - runs: 24 # 19x Travis (jobs with COVERAGE=yes) + 3x AppVeyor (jobs with coverage=yes) + 2x ContinuousPHP + runs: 28 # 23x Travis (jobs with COVERAGE=yes) + 3x AppVeyor (jobs with coverage=yes) + 2x ContinuousPHP filter: excluded_paths: diff --git a/.travis.yml b/.travis.yml index 9fee4c4b8b6..823fd073e72 100644 --- a/.travis.yml +++ b/.travis.yml @@ -104,6 +104,9 @@ jobs: - 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 @@ -113,6 +116,9 @@ jobs: - 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 @@ -122,6 +128,22 @@ jobs: - stage: Test php: 7.3 env: DB=mariadb.mysqli.docker IMAGE=mariadb:10.3 COVERAGE=yes + - stage: Test + dist: trusty + php: 7.3 + env: DB=pgsql POSTGRESQL_VERSION=9.2 COVERAGE=yes + services: + - postgresql + addons: + postgresql: "9.2" + - stage: Test + dist: trusty + 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