-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
126 lines (89 loc) · 2.78 KB
/
makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
### Variable
RUN=go run
BUILD=go build
DEV=${RUN} main.go
DB=postgres://user:P@ssw0rd1234@localhost:5432/database?sslmode=disable
TZ=Etc/GMT
######################################################################################
### Build
.PHONY: build
build:
${BUILD} -ldflags="-s -w" -o output/cli.sh ./main.go
######################################################################################
### Dev
.PHONY: api
api:
TZ=${TZ} ${DEV} service
.PHONY: worker
worker:
TZ=${TZ} ${DEV} worker
.PHONY: gateway
gateway:
TZ=${TZ} ${DEV} gateway
######################################################################################
### Format
.PHONY: format
format: goimport staticcheck
.PHONY: goimport
goimport:
goimports -w -v ./
.PHONY: staticcheck
staticcheck:
staticcheck ./...
go vet ./...
######################################################################################
### Testing
.PHONY: test
test:
go test -v ./... --cover
.PHONY: test-coverage
test-coverage:
rm -rf coverage
mkdir coverage
go test -v ./... -covermode=count -coverpkg=./... -coverprofile coverage/coverage.out
go tool cover -html coverage/coverage.out -o coverage/coverage.html
open coverage/coverage.html
######################################################################################
### DB
.PHONY: db
db:
sqlc generate
######################################################################################
### Swagger
.PHONY: swag
swag: swag-api
.PHONY: swag-api
swag-api:
swag fmt -g ./...
swag init --parseDependency -g cmd/service/cmd.go -o cmd/service/docs -t health
######################################################################################
### Utils
.PHONY: setup
setup: mod setup-dependency setup-env cp-env-api cp-env-scheduler cp-env-worker
.PHONY: setup-env
setup-db:
docker-compose up -d
.PHONY: setup-dependency
setup-dependency:
go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
go install github.com/swaggo/swag/cmd/swag@latest
go install github.com/golang/mock/mockgen@latest
go install gotest.tools/gotestsum@latest
go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest
.PHONY: cp-env-api
cp-env-api:
cp env_default.yaml env.yaml
.PHONY: cp-env-worker
cp-env-worker:
cp worker_default.yaml worker_env.yaml
######################################################################################
### Migrate
migrate-up:
migrate -path pkg/database/migration/ -database ${DB} -verbose up
migrate-down:
migrate -path pkg/database/migration/ -database ${DB} -verbose down ${version}
migrate-fix:
migrate -path pkg/database/migration/ -database ${dbURI} force ${version}
migrate-new:
migrate create -ext sql -dir pkg/database/migration/ -seq ${name}
######################################################################################