Add docker-compose healthcheck for test dependencies (#12)

This commit is contained in:
Adrian Macneil 2017-04-23 20:46:27 -07:00 committed by GitHub
parent c4fc848624
commit 247d7296f8
5 changed files with 33 additions and 32 deletions

View file

@ -2,6 +2,12 @@ sudo: required
services:
- docker
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 run dbmate go version
script:

View file

@ -7,7 +7,9 @@ clean:
rm -rf dist
container:
$(DC) pull
$(DC) build
$(DC) up -d
lint:
$(DC) run dbmate golint

View file

@ -1,13 +1,23 @@
dbmate:
version: '2.1'
services:
dbmate:
build: .
volumes:
- .:/go/src/github.com/amacneil/dbmate
links:
- mysql
- postgres
mysql:
image: mysql:5.7
depends_on:
mysql:
condition: service_healthy
postgres:
condition: service_healthy
mysql:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: root
postgres:
image: postgres:9.4
healthcheck:
test: ["CMD", "mysqladmin", "status", "-proot"]
postgres:
image: postgres
healthcheck:
test: ["CMD", "pg_isready"]

View file

@ -3,23 +3,15 @@ package main
import (
"database/sql"
"net/url"
"os"
"testing"
"github.com/stretchr/testify/require"
)
func mySQLTestURL(t *testing.T) *url.URL {
str := os.Getenv("MYSQL_PORT")
require.NotEmpty(t, str, "missing MYSQL_PORT environment variable")
u, err := url.Parse(str)
u, err := url.Parse("mysql://root:root@mysql:3306/dbmate")
require.Nil(t, err)
u.Scheme = "mysql"
u.User = url.UserPassword("root", "root")
u.Path = "/dbmate"
return u
}

View file

@ -3,24 +3,15 @@ package main
import (
"database/sql"
"net/url"
"os"
"testing"
"github.com/stretchr/testify/require"
)
func postgresTestURL(t *testing.T) *url.URL {
str := os.Getenv("POSTGRES_PORT")
require.NotEmpty(t, str, "missing POSTGRES_PORT environment variable")
u, err := url.Parse(str)
u, err := url.Parse("postgres://postgres:postgres@postgres/dbmate?sslmode=disable")
require.Nil(t, err)
u.Scheme = "postgres"
u.User = url.User("postgres")
u.Path = "/dbmate"
u.RawQuery = "sslmode=disable"
return u
}