61 lines
1.5 KiB
Makefile
61 lines
1.5 KiB
Makefile
UNAME := $(shell uname)
|
|
ifeq ($(UNAME), Darwin)
|
|
DHOST := $(shell echo $$(docker-machine ip))
|
|
else
|
|
DHOST := 127.0.0.1
|
|
endif
|
|
|
|
all: get-deps build
|
|
|
|
.PHONY: build
|
|
build:
|
|
go build ./...
|
|
|
|
.PHONY: get-deps
|
|
get-deps:
|
|
go get -v ./...
|
|
|
|
.PHONY: test
|
|
test: get-deps metalint docs-check check
|
|
|
|
.PHONY: check
|
|
check:
|
|
go test -v -race -cover ./...
|
|
|
|
.PHONY: metalint
|
|
metalint:
|
|
which gometalinter > /dev/null || (go get github.com/alecthomas/gometalinter && gometalinter --install --update)
|
|
gometalinter --cyclo-over=20 -e "struct field Id should be ID" --disable=gas --enable=misspell --fast ./...
|
|
|
|
.PHONY: fmt
|
|
fmt:
|
|
@go fmt ./... | awk '{ print "Please run go fmt"; exit 1 }'
|
|
|
|
.PHONY: docker-test
|
|
docker-test:
|
|
docker run -d -p 5432:5432 --name=pgstore_test_1 postgres:9.4
|
|
@echo "Ugly hack: Sleeping for 75 secs to give the Postgres container time to come up..."
|
|
sleep 75
|
|
@echo "Waking up - let's do this!"
|
|
docker run --rm --link pgstore_test_1:postgres postgres:9.4 psql -c 'create database test;' -U postgres -h postgres
|
|
PGSTORE_TEST_CONN="postgres://postgres@$(DHOST):5432/test?sslmode=disable" make test
|
|
docker kill pgstore_test_1
|
|
docker rm pgstore_test_1
|
|
|
|
.PHONY: docker-clean
|
|
docker-clean:
|
|
-docker kill pgstore_test_1
|
|
-docker rm pgstore_test_1
|
|
|
|
.PHONY: docs-dep
|
|
which embedmd > /dev/null || go get github.com/campoy/embedmd
|
|
|
|
.PHONY: docs-check
|
|
docs-check: docs-dep
|
|
@echo "Checking if docs are generated, if this fails, run 'make docs'."
|
|
embedmd README.md | diff README.md -
|
|
|
|
.PHONY: docs
|
|
docs: docs-dep
|
|
embedmd -w README.md
|