-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
96 lines (85 loc) · 3.26 KB
/
Makefile
File metadata and controls
96 lines (85 loc) · 3.26 KB
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
# Переменные для сборки
PROTO_ROOT=api/proto
PROTO_PATH=api/proto/tiny-auth-service/v1
PROTO_OUT=pkg/api/grpc/
OPEN_API_OUT=pkg/api/http/auth/v1
MODULE_NAME=github.com/ElfAstAhe/tiny-auth-service
SERVER_BINARY_NAME=tiny-auth-service
SERVER_BUILD_DIR=./cmd/tiny-auth-service
VERSION=1.0.0
BUILD_TIME=$(shell date +'%Y/%m/%d_%H:%M:%S')
STAGE=DEV
.PHONY: build run test clean
# Генерация gRPC кода
gen-proto:
mkdir -p $(PROTO_OUT)
protoc \
-I $(PROTO_ROOT) \
--proto_path=$(PROTO_PATH) \
--go_out=$(PROTO_OUT) --go_opt=paths=source_relative \
--go-grpc_out=$(PROTO_OUT) --go-grpc_opt=paths=source_relative \
--go_opt=default_api_level=API_OPAQUE \
$(PROTO_PATH)/*.proto
# Генерация swagger
gen-swagger:
swag init \
-g $(SERVER_BUILD_DIR)/main.go \
--parseDependency \
--parseInternal \
--exclude ./pkg/api \
-o docs \
--parseDepth 3
# swag init -g cmd/server/main.go
gen-http-client:
# oapi-codegen -package client -generate client docs/swagger.json > pkg/client/rest/api_client.gen.go
mkdir -p $(OPEN_API_OUT)
swagger generate client -f ./docs/swagger.json -A tiny-auth-service -t $(OPEN_API_OUT)
gen-mocks:
# Генерирует моки для всех интерфейсов в указанной папке
mockery
# Сборка проекта с прокидыванием переменных
build: gen-proto gen-swagger gen-http-client gen-mocks
#build: gen-proto
go build -ldflags "-X '$(MODULE_NAME)/internal/config.AppVersion=$(VERSION)' \
-X '$(MODULE_NAME)/internal/config.AppBuildTime=$(BUILD_TIME)'" \
-o ./bin/$(SERVER_BINARY_NAME) $(SERVER_BUILD_DIR)/main.go
# go build -ldflags "-X '$(MODULE_NAME)/internal/app/client/config.Version=$(VERSION)' \
# -X '$(MODULE_NAME)/internal/app/client/config.Stage=$(STAGE)' \
# -X '$(MODULE_NAME)/internal/app/client/config.BuildTime=$(BUILD_TIME)'" \
# -o ./bin/$(CLIENT_BINARY_NAME) $(CLIENT_BUILD_DIR)/main.go
# Запуск проекта (сначала соберет, потом запустит)
run: build
./bin/$(SERVER_BINARY_NAME) \
--log-level "debug" \
--http-address "localhost:8080" \
--grpc-address "localhost:50051" \
--db-driver "postgres" \
--db-dsn "postgres://svc_auth:password@localhost:5432/test?sslmode=disable&search_path=auth_db" \
--auth-jwt-secret "jwt-key" \
--app-cipher-key "12345" \
--app-token-issuer "tiny-auth-service" \
--app-max-list-limit 500 \
--svc-creds-username "svc_auth" \
--svc-creds-password "password" \
--svc-creds-schedule-interval "25s" \
--auth-audit-client-base-url "http://localhost:8081/" \
--auth-audit-client-timeout "5s" \
--auth-audit-client-worker-count "4" \
--auth-audit-client-data-capacity "10000" \
--auth-audit-client-complete-processing \
--auth-audit-client-shutdown-timeout "15s" \
--data-audit-client-base-url "http://localhost:8081/" \
--data-audit-client-timeout "5s" \
--data-audit-client-worker-count "2" \
--data-audit-client-data-capacity "10000" \
--data-audit-client-complete-processing \
--data-audit-client-shutdown-timeout "15s"
# Запуск тестов
test:
go test -v ./...
# Запуск static check
static-check:
staticcheck $$(go list ./... | grep -vE "pkg/api|cmd/grpc-client-test")
# Очистка бинарников
clean:
rm -rf ./bin/*