52 lines
1.5 KiB
Makefile
52 lines
1.5 KiB
Makefile
ROOT_DIR=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
|
|
SRC_DIR=$(ROOT_DIR)
|
|
MIGRATIONS_DIR=$(ROOT_DIR)/migrations
|
|
CONFIG_FILE=$(ROOT_DIR)/config.yml
|
|
CONFIG_TEST_FILE=$(ROOT_DIR)/config_test.yml
|
|
BIN=$(ROOT_DIR)/bin/mg-telegram
|
|
REVISION=$(shell git describe --tags 2>/dev/null || git log --format="v0.0-%h" -n 1 || echo "v0.0-unknown")
|
|
|
|
ifndef GOPATH
|
|
$(error GOPATH must be defined)
|
|
endif
|
|
|
|
export GOPATH := $(GOPATH):$(ROOT_DIR)
|
|
|
|
build: deps fmt
|
|
@echo "==> Building"
|
|
@go build -o $(BIN) -ldflags "-X common.build=${REVISION}" .
|
|
@echo $(BIN)
|
|
|
|
run: migrate
|
|
@echo "==> Running"
|
|
@${BIN} --config $(CONFIG_FILE) run
|
|
|
|
test: deps fmt
|
|
@echo "==> Running tests"
|
|
@cd $(SRC_DIR) && go test ./... -v -cpu 2 -cover -race
|
|
|
|
jenkins_test: deps
|
|
@echo "==> Running tests (result in test-report.xml)"
|
|
@go get -v -u github.com/jstemmer/go-junit-report
|
|
@cd $(SRC_DIR) && go test ./... -v -cpu 2 -cover -race | go-junit-report -set-exit-code > $(SRC_DIR)/test-report.xml
|
|
|
|
fmt:
|
|
@echo "==> Running gofmt"
|
|
@gofmt -l -s -w $(SRC_DIR)
|
|
|
|
deps:
|
|
@echo "==> Installing dependencies"
|
|
$(eval DEPS:=$(shell cd $(SRC_DIR) \
|
|
&& go list -f '{{join .Imports "\n"}}{{ "\n" }}{{join .TestImports "\n"}}' ./... \
|
|
| sort | uniq | tr '\r' '\n' | paste -sd ' ' -))
|
|
@go get -d -v $(DEPS)
|
|
|
|
migrate: build
|
|
@${BIN} --config $(CONFIG_FILE) migrate -p ./migrations/
|
|
|
|
migrate_test: build
|
|
@${BIN} --config $(CONFIG_TEST_FILE) migrate ./migrations/
|
|
|
|
migrate_down: build
|
|
@${BIN} --config $(CONFIG_FILE) migrate -v down
|