Browse Source

Travis: Add MySQL 8.0 test enviornment (#798)

* travis: add mysql 8.0 env

* travis: disable version check for mysql 8
debian does not have a compatible client yet

* travis: set local-infile=1

* travis: try to fix waiting for mysql 8 and optimize wait time

* travis: show output of wait script

* travis: grep for successful execution

* travis: remove sleep
Julien Schmidt 7 years ago
parent
commit
d03e4c2847
2 changed files with 25 additions and 11 deletions
  1. 23 9
      .travis.yml
  2. 2 2
      .travis/wait_mysql.sh

+ 23 - 9
.travis.yml

@@ -19,6 +19,26 @@ before_script:
 
 matrix:
   include:
+    - env: DB=MYSQL8
+      sudo: required
+      dist: trusty
+      go: 1.10.x
+      services:
+        - docker
+      before_install:
+        - go get golang.org/x/tools/cmd/cover
+        - go get github.com/mattn/goveralls
+        - docker pull mysql:8.0
+        - docker run -d -p 127.0.0.1:3307:3306 --name mysqld -e MYSQL_DATABASE=gotest -e MYSQL_USER=gotest -e MYSQL_PASSWORD=secret -e MYSQL_ROOT_PASSWORD=verysecret
+          mysql:8.0 --innodb_log_file_size=256MB --innodb_buffer_pool_size=512MB --max_allowed_packet=16MB --local-infile=1
+        - cp .travis/docker.cnf ~/.my.cnf
+        - .travis/wait_mysql.sh
+      before_script:
+        - export MYSQL_TEST_USER=gotest
+        - export MYSQL_TEST_PASS=secret
+        - export MYSQL_TEST_ADDR=127.0.0.1:3307
+        - export MYSQL_TEST_CONCURRENT=1
+
     - env: DB=MYSQL57
       sudo: required
       dist: trusty
@@ -30,10 +50,8 @@ matrix:
         - go get github.com/mattn/goveralls
         - docker pull mysql:5.7
         - docker run -d -p 127.0.0.1:3307:3306 --name mysqld -e MYSQL_DATABASE=gotest -e MYSQL_USER=gotest -e MYSQL_PASSWORD=secret -e MYSQL_ROOT_PASSWORD=verysecret
-          mysql:5.7 --innodb_log_file_size=256MB --innodb_buffer_pool_size=512MB --max_allowed_packet=16MB
-        - sleep 30
+          mysql:5.7 --innodb_log_file_size=256MB --innodb_buffer_pool_size=512MB --max_allowed_packet=16MB --local-infile=1
         - cp .travis/docker.cnf ~/.my.cnf
-        - mysql --print-defaults
         - .travis/wait_mysql.sh
       before_script:
         - export MYSQL_TEST_USER=gotest
@@ -52,10 +70,8 @@ matrix:
         - go get github.com/mattn/goveralls
         - docker pull mariadb:5.5
         - docker run -d -p 127.0.0.1:3307:3306 --name mysqld -e MYSQL_DATABASE=gotest -e MYSQL_USER=gotest -e MYSQL_PASSWORD=secret -e MYSQL_ROOT_PASSWORD=verysecret
-          mariadb:5.5 --innodb_log_file_size=256MB --innodb_buffer_pool_size=512MB --max_allowed_packet=16MB
-        - sleep 30
+          mariadb:5.5 --innodb_log_file_size=256MB --innodb_buffer_pool_size=512MB --max_allowed_packet=16MB --local-infile=1
         - cp .travis/docker.cnf ~/.my.cnf
-        - mysql --print-defaults
         - .travis/wait_mysql.sh
       before_script:
         - export MYSQL_TEST_USER=gotest
@@ -74,10 +90,8 @@ matrix:
         - go get github.com/mattn/goveralls
         - docker pull mariadb:10.1
         - docker run -d -p 127.0.0.1:3307:3306 --name mysqld -e MYSQL_DATABASE=gotest -e MYSQL_USER=gotest -e MYSQL_PASSWORD=secret -e MYSQL_ROOT_PASSWORD=verysecret
-          mariadb:10.1 --innodb_log_file_size=256MB --innodb_buffer_pool_size=512MB --max_allowed_packet=16MB
-        - sleep 30
+          mariadb:10.1 --innodb_log_file_size=256MB --innodb_buffer_pool_size=512MB --max_allowed_packet=16MB --local-infile=1
         - cp .travis/docker.cnf ~/.my.cnf
-        - mysql --print-defaults
         - .travis/wait_mysql.sh
       before_script:
         - export MYSQL_TEST_USER=gotest

+ 2 - 2
.travis/wait_mysql.sh

@@ -1,8 +1,8 @@
 #!/bin/sh
 while :
 do
-    sleep 3
-    if mysql -e 'select version()'; then
+    if mysql -e 'select version()' 2>&1 | grep 'version()\|ERROR 2059 (HY000):'; then
         break
     fi
+    sleep 3
 done