Skip to content

Commit bde3413

Browse files
Arthur Gautierbaloo
Arthur Gautier
authored andcommitted
put mysql in docker for ci
Signed-off-by: Arthur Gautier <[email protected]>
1 parent 7fc95e1 commit bde3413

File tree

5 files changed

+83
-127
lines changed

5 files changed

+83
-127
lines changed

.travis.yml

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
dist: trusty
22
language: python
3+
services:
4+
- docker
35
python:
46
- "2.7"
57
- "3.4"
@@ -21,8 +23,8 @@ cache:
2123
- $HOME/bins
2224
before_script:
2325
- env | grep DB
24-
- bash -c "if [ '$DB' = 'mysql57' ]; then sudo ./scripts/install_mysql57.sh; fi"
25-
- bash -c "if [ '$DB' = 'mysql56' ]; then sudo ./scripts/install_mysql56.sh; fi"
26+
- bash -c "if [ '$DB' = 'mysql57' ]; then sudo ./scripts/install_mysql.sh 5.7; fi"
27+
- bash -c "if [ '$DB' = 'mysql56' ]; then sudo ./scripts/install_mysql.sh 5.6; fi"
2628
script:
2729
- "sudo $(which nosetests) pymysqlreplication.tests.test_abnormal:TestAbnormalBinLogStreamReader.test_no_trailing_rotate_event"
2830
- "nosetests -e test_no_trailing_rotate_event"

pymysqlreplication/tests/base.py

-2
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ def setUp(self):
3131
"charset": "utf8",
3232
"db": "pymysqlreplication_test"
3333
}
34-
if os.getenv("TRAVIS") is not None and db == "mysql56":
35-
self.database["user"] = "travis"
3634

3735
self.conn_control = None
3836
db = copy.copy(self.database)

scripts/install_mysql.sh

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
#!/usr/bin/env bash
2+
3+
set -x
4+
5+
# Remove old mysql version
6+
/etc/init.d/mysql stop || true
7+
apt-get remove mysql-common mysql-server-5.5 mysql-server-core-5.5 mysql-client-5.5 mysql-client-core-5.5
8+
apt-get autoremove
9+
10+
VERSION=$1
11+
12+
docker pull percona:$VERSION
13+
14+
# Cleanup old mysql datas
15+
rm -rf /var/ramfs/mysql/
16+
rm -rf /var/ramfs/mysql-ctl/
17+
mkdir /var/ramfs/mysql/
18+
mkdir /var/ramfs/mysql-ctl/
19+
chmod 777 /var/ramfs/mysql/
20+
chmod 777 /var/ramfs/mysql-ctl/
21+
rm -rf /var/run/mysqld/
22+
mkdir /var/run/mysqld/
23+
chmod 777 /var/run/mysqld/
24+
25+
OPTIONS=""
26+
# Replication
27+
OPTIONS="$OPTIONS --log_bin=mysql-bin"
28+
OPTIONS="$OPTIONS --binlog-format=row"
29+
# Gtid
30+
OPTIONS="$OPTIONS --log_slave_updates"
31+
OPTIONS="$OPTIONS --gtid_mode=ON"
32+
OPTIONS="$OPTIONS --enforce-gtid-consistency=ON"
33+
34+
MASTER_OPTIONS="$OPTIONS --server-id=1"
35+
MASTER_OPTIONS="$MASTER_OPTIONS --datadir=/var/ramfs/mysql/"
36+
MASTER_OPTIONS="$MASTER_OPTIONS --socket=/var/run/mysqld/mysqld.sock"
37+
38+
docker run --publish 3306:3306 \
39+
-d --name master \
40+
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes\
41+
-v /var/ramfs/mysql/:/var/ramfs/mysql/\
42+
percona:$VERSION\
43+
$MASTER_OPTIONS
44+
# -v /var/run/mysqld/:/var/run/mysqld/\
45+
46+
CTL_OPTIONS="$OPTIONS --server-id=2"
47+
CTL_OPTIONS="$CTL_OPTIONS --socket=/var/run/mysqld/mysqld-ctl.sock"
48+
CTL_OPTIONS="$CTL_OPTIONS --datadir=/var/ramfs/mysql-ctl/"
49+
CTL_OPTIONS="$CTL_OPTIONS --pid-file=/var/lib/mysql/mysql-ctl.pid"
50+
51+
docker run --publish 3307:3306 \
52+
-d --name ctl \
53+
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes\
54+
-v /var/ramfs/mysql-ctl/:/var/ramfs/mysql-ctl/\
55+
percona:$VERSION\
56+
$CTL_OPTIONS
57+
# -v /var/run/mysqld/:/var/run/mysqld/\
58+
59+
for i in $(seq 0 40); do
60+
sleep 1;
61+
mysql -u root --host=127.0.0.1 --port=3306 -e 'SELECT VERSION();'
62+
if [ $? -eq 0 ]; then
63+
break 2;
64+
fi
65+
done
66+
67+
for i in $(seq 0 40); do
68+
sleep 1;
69+
mysql -u root --host=127.0.0.1 --port=3307 -e 'SELECT VERSION();'
70+
if [ $? -eq 0 ]; then
71+
break 2;
72+
fi
73+
done
74+
75+
docker logs master
76+
docker logs ctl
77+
78+
mysql -u root --host=127.0.0.1 --port=3306 -e 'CREATE DATABASE pymysqlreplication_test;'
79+
mysql -u root --host=127.0.0.1 --port=3307 -e "CREATE DATABASE pymysqlreplication_test;"

scripts/install_mysql56.sh

-61
This file was deleted.

scripts/install_mysql57.sh

-62
This file was deleted.

0 commit comments

Comments
 (0)