From 8d91fe3147be207590591b377bdbad393b554759 Mon Sep 17 00:00:00 2001 From: Iurii Bliuchak Date: Wed, 5 Feb 2020 23:12:26 +0100 Subject: [PATCH] Add tests, lint and code-coverage commands into makefile --- .gitignore | 1 + Dockerfile.dev | 5 +++++ Makefile | 12 ++++++++++++ docker-compose.yml | 3 ++- 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 Dockerfile.dev diff --git a/.gitignore b/.gitignore index 485dee6..b8da095 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .idea +coverage.html diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 0000000..86dc882 --- /dev/null +++ b/Dockerfile.dev @@ -0,0 +1,5 @@ +FROM golang:1.13 +WORKDIR /opt/app +RUN go get github.com/cespare/reflex \ + && curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin +ENTRYPOINT ["reflex", "--decoration=none", "--regex=\\.go$", "-s", "--", "go", "run", "/opt/app/main.go"] diff --git a/Makefile b/Makefile index 96d9600..d74acc2 100644 --- a/Makefile +++ b/Makefile @@ -3,3 +3,15 @@ migrate-up: migrate-down: docker run -v "${CURDIR}/migrations:/migrations" --network host migrate/migrate -path=/migrations/ -database "mysql://root:test100500@tcp(localhost:3306)/flat-search" down -all + +lint: + docker-compose run --rm --entrypoint golangci-lint flat-search run ./... + +tests: + docker-compose run --rm --entrypoint go flat-search test ./... + +code-coverage: + @docker-compose run --rm --no-deps --entrypoint bash flat-search -xeuo pipefail -c "go test -coverprofile=/tmp/c.out ./...; \ + go tool cover -html=/tmp/c.out -o coverage.html; \ + " + open coverage.html diff --git a/docker-compose.yml b/docker-compose.yml index 796405b..c849855 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,7 @@ services: flat-search: build: context: . - dockerfile: Dockerfile + dockerfile: Dockerfile.dev container_name: flatsearch depends_on: - storage @@ -15,6 +15,7 @@ services: DB_USER: flat-agent DB_PASSWORD: test-flat-agent volumes: + - .:/opt/app - go-pkg:/go/pkg - go-cache:/.cache