Skip to content

Commit

Permalink
Add Dockerfile and docker-compose.yml to easily run tests on all data…
Browse files Browse the repository at this point in the history
…bases
  • Loading branch information
andreynering committed May 1, 2019
1 parent 1e83010 commit 3185a53
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 0 deletions.
6 changes: 6 additions & 0 deletions Dockerfile
@@ -0,0 +1,6 @@
FROM golang:1.12.4

WORKDIR /gormigrate
COPY . .

RUN go mod download
8 changes: 8 additions & 0 deletions README.md
Expand Up @@ -183,6 +183,14 @@ go test -tags sqlserver
go test -tags 'sqlite postgresql mysql'
```

Or altenatively, you could use Docker to easily run tests on all databases
at once. To do that, make sure Docker is installed and running in your machine
and then run:

```bash
task docker
```

[gorm]: http://gorm.io/
[gormmigrate]: http://doc.gorm.io/database.html#migration
[gormdatabases]: http://doc.gorm.io/database.html#connecting-to-a-database
14 changes: 14 additions & 0 deletions Taskfile.yml
Expand Up @@ -44,3 +44,17 @@ tasks:
test:
cmds:
- go test -v -tags {{.DATABASE}}

docker:
cmds:
- task: docker:build
- task: docker:test

docker:build:
cmds:
- docker build -t gormigrate .

docker:test:
cmds:
- docker-compose down -v
- docker-compose run gormigrate go test -v -tags 'postgresql sqlite mysql sqlserver'
35 changes: 35 additions & 0 deletions docker-compose.yml
@@ -0,0 +1,35 @@
version: '3'

services:
gormigrate:
image: gormigrate
depends_on:
- postgresql
- mysql
- sqlserver
environment:
PGPASSWORD: postgres
PG_CONN_STRING: host=postgresql user=postgres dbname=gormigrate_test port=5432 sslmode=disable

MYSQL_CONN_STRING: root:mysql@tcp(mysql)/gormigrate_test?multiStatements=true

SQLSERVER_CONN_STRING: server=sqlserver;database=master;user id=sa;password=SQL@1server;encrypt=disable

postgresql:
image: postgres:11.2
environment:
POSTGRES_DB: gormigrate_test
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres

mysql:
image: mysql:5.7
environment:
MYSQL_DATABASE: gormigrate_test
MYSQL_ROOT_PASSWORD: mysql

sqlserver:
image: mcr.microsoft.com/mssql/server:2017-latest-ubuntu
environment:
ACCEPT_EULA: 'Y'
SA_PASSWORD: SQL@1server

0 comments on commit 3185a53

Please sign in to comment.