Skip to content

Commit 3ede937

Browse files
authored
Merge pull request #277 from lukaszbudnik/integration-testing-only-main-db-flavours
Integration testing only main db flavours
2 parents eec6f1a + 820084d commit 3ede937

9 files changed

+74
-54
lines changed

.github/workflows/build.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
password: ${{ secrets.DOCKER_HUB_TOKEN }}
2727

2828
- name: Start docker-compose services
29-
run: docker-compose -f test/docker-compose.yaml up -d
29+
run: docker-compose -f test/docker-compose-it.yaml up -d
3030

3131
- name: Build and test migrator
3232
env:

.travis.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ go:
55
- '1.17'
66
before_script:
77
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
8-
- docker-compose -f test/docker-compose.yaml up -d
8+
- docker-compose -f test/docker-compose-it.yaml up -d
99
script:
1010
- "./coverage.sh"
11+
- "./test/http-integration-tests.sh"
1112
after_success:
1213
- bash <(curl -s https://codecov.io/bash)
1314
env:

README.md

+1-3
Original file line numberDiff line numberDiff line change
@@ -267,9 +267,7 @@ docker-compose will start and configure the following services:
267267
2. `migrator-dev` - service built from local branch, listening on port `8282`
268268
3. `postgres` - PostgreSQL service, listening on port `54325`
269269
4. `mysql` - MySQL service, listening on port `3306`
270-
5. `mariadb` - MariaDB (MySQL flavour), listening on port `13306`
271-
6. `percona` - Percona (MySQL flavour), listening on port `23306`
272-
7. `mssql` - MS SQL Server, listening on port `1433`
270+
5. `mssql` - MS SQL Server, listening on port `1433`
273271

274272
> Note: Every database container has a ready-to-use migrator config in `test` directory. You can edit `test/docker-compose.yaml` file and switch to a different database. By default `migrator` and `migrator-dev` services use `test/migrator-docker.yaml` which connects to `mysql` service.
275273

db/db_integration_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
)
1212

1313
func getSupportedDatabases() []string {
14-
return []string{"postgresql", "mysql", "mariadb", "percona", "mssql"}
14+
return []string{"postgresql", "mysql", "mssql"}
1515
}
1616

1717
func TestGetTenants(t *testing.T) {

test/docker-compose-it.yaml

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
version: "3.6"
2+
services:
3+
postgres:
4+
image: postgres
5+
ports:
6+
- "5432:5432"
7+
environment:
8+
- POSTGRES_PASSWORD=supersecret
9+
- POSTGRES_DB=migrator
10+
volumes:
11+
- ./create-test-tenants.sql:/docker-entrypoint-initdb.d/create-test-tenants.sql
12+
mysql:
13+
image: mysql
14+
ports:
15+
- "3306:3306"
16+
environment:
17+
- MYSQL_ROOT_PASSWORD=supersecret
18+
volumes:
19+
- ./create-test-tenants.sql:/docker-entrypoint-initdb.d/create-test-tenants.sql
20+
mssql:
21+
image: mcr.microsoft.com/mssql/server:2017-latest
22+
ports:
23+
- "1433:1433"
24+
environment:
25+
- SA_PASSWORD=Super5ecret
26+
- ACCEPT_EULA=Y
27+
volumes:
28+
- ./create-test-tenants-mssql.sql:/docker-entrypoint-initdb.d/create-test-tenants-mssql.sql
29+
command:
30+
- /bin/bash
31+
- -c
32+
- |
33+
/opt/mssql/bin/sqlservr &
34+
PID=$$!
35+
is_up=-1
36+
while [ $$is_up -ne 0 ] && [ $$is_up -ne 16 ] ; do
37+
/opt/mssql-tools/bin/sqlcmd -l 30 -S localhost -h-1 -V1 -U sa -P $$SA_PASSWORD -Q "CREATE DATABASE migrator"
38+
is_up=$$?
39+
sleep 5
40+
done
41+
if [ $$is_up -eq 0 ]; then
42+
for script in /docker-entrypoint-initdb.d/*.sql
43+
do /opt/mssql-tools/bin/sqlcmd -U sa -P $$SA_PASSWORD -d migrator -l 30 -e -i $$script
44+
done
45+
fi
46+
wait $$PID
47+
migrator-dev:
48+
image: migrator-dev
49+
build:
50+
context: ..
51+
dockerfile: test/migrator-dev/Dockerfile
52+
depends_on:
53+
- mysql
54+
- postgres
55+
- mssql
56+
ports:
57+
- "8282:8080"
58+
environment:
59+
- MIGRATOR_YAML=/data/migrator-docker.yaml
60+
volumes:
61+
- .:/data
62+
links:
63+
- mysql
64+
- postgres
65+
- mssql

test/docker-compose.yaml

+1-29
Original file line numberDiff line numberDiff line change
@@ -25,38 +25,18 @@ services:
2525
- MYSQL_ROOT_PASSWORD=supersecret
2626
volumes:
2727
- ./create-test-tenants.sql:/docker-entrypoint-initdb.d/create-test-tenants.sql
28-
mariadb:
29-
image: mariadb
30-
ports:
31-
- "13306:3306"
32-
environment:
33-
- MYSQL_ROOT_PASSWORD=supersecret
34-
volumes:
35-
- ./create-test-tenants.sql:/docker-entrypoint-initdb.d/create-test-tenants.sql
36-
percona:
37-
image: percona
38-
ports:
39-
- "23306:3306"
40-
environment:
41-
- MYSQL_ROOT_PASSWORD=supersecret
42-
volumes:
43-
- ./create-test-tenants.sql:/docker-entrypoint-initdb.d/create-test-tenants.sql
4428
# phpmyadmin:
4529
# image: phpmyadmin/phpmyadmin
4630
# depends_on:
4731
# - mysql
48-
# - mariadb
49-
# - percona
5032
# ports:
5133
# - "8888:80"
5234
# environment:
53-
# - PMA_HOSTS=mysql,mariadb,percona
35+
# - PMA_HOSTS=mysql
5436
# - PMA_USER=root
5537
# - PMA_PASSWORD=supersecret
5638
# links:
5739
# - mysql
58-
# - mariadb
59-
# - percona
6040
mssql:
6141
image: mcr.microsoft.com/mssql/server:2017-latest
6242
ports:
@@ -88,8 +68,6 @@ services:
8868
image: lukasz/migrator:latest
8969
depends_on:
9070
- mysql
91-
- mariadb
92-
- percona
9371
- postgres
9472
- mssql
9573
ports:
@@ -100,8 +78,6 @@ services:
10078
- .:/data
10179
links:
10280
- mysql
103-
- mariadb
104-
- percona
10581
- postgres
10682
- mssql
10783
migrator-dev:
@@ -111,8 +87,6 @@ services:
11187
dockerfile: test/migrator-dev/Dockerfile
11288
depends_on:
11389
- mysql
114-
- mariadb
115-
- percona
11690
- postgres
11791
- mssql
11892
ports:
@@ -123,7 +97,5 @@ services:
12397
- .:/data
12498
links:
12599
- mysql
126-
- mariadb
127-
- percona
128100
- postgres
129101
- mssql

test/http-integration-tests.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ if [ "$version_create_name" != "$VERSION_NAME" ]; then
9797
exit 1
9898
fi
9999
echo "New version successfully created"
100-
echo $version_create | jq
100+
echo $version_create | jq '.'
101101

102102
# 4. Fetch migrator versions - will now contain version created above
103103

@@ -155,7 +155,7 @@ if [ "$tenant_create_version_name" != "$VERSION_NAME" ]; then
155155
exit 1
156156
fi
157157
echo "New tenant successfully created"
158-
echo $tenant_create | jq
158+
echo $tenant_create | jq '.'
159159

160160
# 6. Fetch tenants - will now contain tenant create above
161161

@@ -176,4 +176,4 @@ echo "--------------------------------------------------------------------------
176176

177177
echo "All good!"
178178

179-
cleanup
179+
cleanup

test/migrator-mariadb.yaml

-8
This file was deleted.

test/migrator-percona.yaml

-8
This file was deleted.

0 commit comments

Comments
 (0)