mirror of
https://github.com/TECHNOFAB11/dbmate.git
synced 2025-12-12 16:10:03 +01:00
Add docker-compose healthcheck for test dependencies (#12)
This commit is contained in:
parent
c4fc848624
commit
247d7296f8
5 changed files with 33 additions and 32 deletions
|
|
@ -2,6 +2,12 @@ sudo: required
|
||||||
services:
|
services:
|
||||||
- docker
|
- docker
|
||||||
install:
|
install:
|
||||||
|
- curl -fsSL https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > docker-compose
|
||||||
|
- chmod +x docker-compose
|
||||||
|
- sudo mv docker-compose /usr/local/bin/docker-compose
|
||||||
|
- docker-compose version
|
||||||
|
- docker-compose pull
|
||||||
|
- docker-compose build
|
||||||
- docker-compose up -d
|
- docker-compose up -d
|
||||||
- docker-compose run dbmate go version
|
- docker-compose run dbmate go version
|
||||||
script:
|
script:
|
||||||
|
|
|
||||||
2
Makefile
2
Makefile
|
|
@ -7,7 +7,9 @@ clean:
|
||||||
rm -rf dist
|
rm -rf dist
|
||||||
|
|
||||||
container:
|
container:
|
||||||
|
$(DC) pull
|
||||||
$(DC) build
|
$(DC) build
|
||||||
|
$(DC) up -d
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
$(DC) run dbmate golint
|
$(DC) run dbmate golint
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,23 @@
|
||||||
dbmate:
|
version: '2.1'
|
||||||
build: .
|
services:
|
||||||
volumes:
|
dbmate:
|
||||||
- .:/go/src/github.com/amacneil/dbmate
|
build: .
|
||||||
links:
|
volumes:
|
||||||
- mysql
|
- .:/go/src/github.com/amacneil/dbmate
|
||||||
- postgres
|
depends_on:
|
||||||
mysql:
|
mysql:
|
||||||
image: mysql:5.7
|
condition: service_healthy
|
||||||
environment:
|
postgres:
|
||||||
MYSQL_ROOT_PASSWORD: root
|
condition: service_healthy
|
||||||
postgres:
|
|
||||||
image: postgres:9.4
|
mysql:
|
||||||
|
image: mysql
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: root
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "mysqladmin", "status", "-proot"]
|
||||||
|
|
||||||
|
postgres:
|
||||||
|
image: postgres
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "pg_isready"]
|
||||||
|
|
|
||||||
|
|
@ -3,23 +3,15 @@ package main
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func mySQLTestURL(t *testing.T) *url.URL {
|
func mySQLTestURL(t *testing.T) *url.URL {
|
||||||
str := os.Getenv("MYSQL_PORT")
|
u, err := url.Parse("mysql://root:root@mysql:3306/dbmate")
|
||||||
require.NotEmpty(t, str, "missing MYSQL_PORT environment variable")
|
|
||||||
|
|
||||||
u, err := url.Parse(str)
|
|
||||||
require.Nil(t, err)
|
require.Nil(t, err)
|
||||||
|
|
||||||
u.Scheme = "mysql"
|
|
||||||
u.User = url.UserPassword("root", "root")
|
|
||||||
u.Path = "/dbmate"
|
|
||||||
|
|
||||||
return u
|
return u
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,24 +3,15 @@ package main
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func postgresTestURL(t *testing.T) *url.URL {
|
func postgresTestURL(t *testing.T) *url.URL {
|
||||||
str := os.Getenv("POSTGRES_PORT")
|
u, err := url.Parse("postgres://postgres:postgres@postgres/dbmate?sslmode=disable")
|
||||||
require.NotEmpty(t, str, "missing POSTGRES_PORT environment variable")
|
|
||||||
|
|
||||||
u, err := url.Parse(str)
|
|
||||||
require.Nil(t, err)
|
require.Nil(t, err)
|
||||||
|
|
||||||
u.Scheme = "postgres"
|
|
||||||
u.User = url.User("postgres")
|
|
||||||
u.Path = "/dbmate"
|
|
||||||
u.RawQuery = "sslmode=disable"
|
|
||||||
|
|
||||||
return u
|
return u
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue