Skip to content

Commit

Permalink
Refactor MySQL and MariaDB run in a single script
Browse files Browse the repository at this point in the history
  • Loading branch information
greg0ire committed Feb 29, 2020
1 parent 765432a commit e7aef4e
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 133 deletions.
86 changes: 23 additions & 63 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
10 changes: 0 additions & 10 deletions tests/travis/create-mysql-schema.sql

This file was deleted.

42 changes: 42 additions & 0 deletions tests/travis/docker-run-mysql-or-mariadb.sh
Original file line number Diff line number Diff line change
@@ -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
18 changes: 0 additions & 18 deletions tests/travis/install-mariadb.sh

This file was deleted.

20 changes: 0 additions & 20 deletions tests/travis/install-mysql-5.7.sh

This file was deleted.

22 changes: 0 additions & 22 deletions tests/travis/install-mysql-8.0.sh

This file was deleted.

0 comments on commit e7aef4e

Please sign in to comment.