2021-09-14 12:24:35 +03:00
|
|
|
SHELL = /bin/bash -o pipefail
|
|
|
|
export PATH := $(shell go env GOPATH)/bin:$(PATH)
|
|
|
|
|
|
|
|
ROOT_DIR=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
|
|
|
|
BIN_DIR=$(ROOT_DIR)/build
|
|
|
|
BIN=$(BIN_DIR)/app
|
|
|
|
|
|
|
|
all: clean build run
|
|
|
|
|
|
|
|
run:
|
|
|
|
@echo "==> Running"
|
2021-09-14 13:02:03 +03:00
|
|
|
@${BIN} run
|
2021-09-14 12:24:35 +03:00
|
|
|
|
|
|
|
build: deps fmt
|
|
|
|
@echo "==> Building for prod"
|
|
|
|
@mkdir -p $(BIN_DIR)
|
|
|
|
@CGO_ENABLED=0 go build -o $(BIN) .
|
|
|
|
@echo $(BIN)
|
|
|
|
|
|
|
|
fmt:
|
|
|
|
@echo "==> Running gofmt"
|
|
|
|
@gofmt -l -s -w .
|
|
|
|
|
|
|
|
deps:
|
|
|
|
@echo "==> Installing dependencies"
|
|
|
|
@go mod tidy
|
|
|
|
@go mod vendor
|
|
|
|
|
2021-09-14 12:36:52 +03:00
|
|
|
test: clean build
|
|
|
|
@echo "==> Running tests"
|
|
|
|
@go test ./... -v -cpu 2 -race -timeout=30s -coverpkg=./... -coverprofile=$(ROOT_DIR)/coverage.out | tee $(ROOT_DIR)/test-report.txt
|
|
|
|
@cd / && go install github.com/axw/gocov/gocov@v1.0.0
|
|
|
|
@gocov convert $(ROOT_DIR)/coverage.out | gocov report
|
|
|
|
@go mod tidy
|
|
|
|
|
2021-09-14 12:24:35 +03:00
|
|
|
.PHONY: clean
|
|
|
|
clean:
|
|
|
|
ifneq ($(wildcard $(ROOT_DIR)/vendor/.*),)
|
|
|
|
@rm -rf ./vendor
|
|
|
|
@mkdir ./vendor
|
|
|
|
@touch ./vendor/.gitkeep
|
|
|
|
endif
|
|
|
|
@rm -rf coverage.out test-report.{txt,xml}
|
|
|
|
@rm -rf $(BIN_DIR)
|
|
|
|
@mkdir -p $(BIN_DIR)
|
|
|
|
@touch $(BIN_DIR)/.gitkeep
|