tg-bot-golang
Форк от ella/tg-bot-golang
/
Makefile
54 строки · 1.5 Кб
1CURDIR=$(shell pwd)
2BINDIR=${CURDIR}/bin
3GOVER=$(shell go version | perl -nle '/(go\d\S+)/; print $$1;')
4MOCKGEN=${BINDIR}/mockgen_${GOVER}
5SMARTIMPORTS=${BINDIR}/smartimports_${GOVER}
6LINTVER=v1.49.0
7LINTBIN=${BINDIR}/lint_${GOVER}_${LINTVER}
8PACKAGE=github.com/ellavs/tg-bot-golang/cmd/bot
9
10all: format build test lint
11
12build: bindir
13go build -o ${BINDIR}/bot ${PACKAGE}
14
15test:
16go test ./...
17
18run:
19go run ${PACKAGE}
20
21generate: install-mockgen
22${MOCKGEN} -source=internal/model/messages/incoming_msg.go -destination=internal/mocks/messages/messages_mocks.go
23${MOCKGEN} -source=internal/model/exchangerates/exchangerates.go -destination=internal/mocks/exchangerates/exchangerates_mocks.go
24${MOCKGEN} -source=internal/clients/cbr/cbrclient.go -destination=internal/mocks/cbr/cbr_mocks.go
25
26lint: install-lint
27${LINTBIN} run
28
29precommit: format build test lint
30echo "OK"
31
32bindir:
33mkdir -p ${BINDIR}
34
35format: install-smartimports
36${SMARTIMPORTS} -exclude internal/mocks
37
38install-mockgen: bindir
39test -f ${MOCKGEN} || \
40(GOBIN=${BINDIR} go install github.com/golang/mock/mockgen@v1.6.0 && \
41mv ${BINDIR}/mockgen ${MOCKGEN})
42
43install-lint: bindir
44test -f ${LINTBIN} || \
45(GOBIN=${BINDIR} go install github.com/golangci/golangci-lint/cmd/golangci-lint@${LINTVER} && \
46mv ${BINDIR}/golangci-lint ${LINTBIN})
47
48install-smartimports: bindir
49test -f ${SMARTIMPORTS} || \
50(GOBIN=${BINDIR} go install github.com/pav5000/smartimports/cmd/smartimports@latest && \
51mv ${BINDIR}/smartimports ${SMARTIMPORTS})
52
53docker-run:
54sudo docker compose up
55