59 lines
1.8 KiB
Makefile
59 lines
1.8 KiB
Makefile
include api.env
|
|
MIGRATION_PATH = ./cmd/db/migrations
|
|
|
|
export
|
|
|
|
test:
|
|
@go test -v -cover -short ./...
|
|
|
|
mock:
|
|
@mockgen --package mockdb --destination internal/db/mock/store.go $(PKG_NAME)/internal/db/sqlc Store
|
|
@mockgen --package mockwk --destination internal/worker/mock/distributor.go $(PKG_NAME)/internal/worker TaskDistributor
|
|
@mockgen --package mocksvc --destination internal/service/mock/service.go $(PKG_NAME)/internal/service UserService,AuthService
|
|
|
|
up:
|
|
@docker compose --env-file api.env up -d
|
|
down:
|
|
@docker compose --env-file api.env down
|
|
reload:
|
|
@docker compose --env-file api.env down && docker rmi $(PROJ_NAME)-api && docker compose --env-file api.env up -d
|
|
server:
|
|
@air -c air.toml
|
|
|
|
migration:
|
|
@migrate create -seq -ext sql -dir $(MIGRATION_PATH) $(filter-out $@,$(MAKECMDGOALS))
|
|
|
|
migrate-up:
|
|
@migrate -path=$(MIGRATION_PATH) -database=$(DB_ADDR) -verbose up
|
|
|
|
migrate-down:
|
|
@migrate -path=$(MIGRATION_PATH) -database=$(DB_ADDR) -verbose down $(filter-out $@,$(MAKECMDGOALS))
|
|
|
|
sqlc:
|
|
@sqlc generate
|
|
|
|
dbdocs:
|
|
@dbdocs build -o ./docs/dbdocs ./docs/db.dbml
|
|
@echo "Database documentation generated at ./docs/dbdocs"
|
|
|
|
dbschema:
|
|
@dbml2sql --postgres -o docs/schema.sql docs/db.dbml
|
|
|
|
proto:
|
|
@rm -f pb/*.go
|
|
@rm -f docs/swagger/*.swagger.json
|
|
@protoc --proto_path=proto --go_out=pb --go_opt=paths=source_relative \
|
|
--go-grpc_out=pb --go-grpc_opt=paths=source_relative \
|
|
--grpc-gateway_out=pb --grpc-gateway_opt=paths=source_relative \
|
|
--openapiv2_out=docs/swagger --openapiv2_opt=allow_merge=true,merge_file_name=$(PROJ_NAME)\
|
|
proto/*.proto
|
|
@statik -src=./docs/swagger -dest=./docs
|
|
|
|
evans:
|
|
@evans --host localhost --port 9090 -r repl
|
|
|
|
lint:
|
|
@golangci-lint run ./...
|
|
|
|
.PHONY: test mock up down reload server migration migrate-up migrate-down sqlc dbdocs dbschema proto evans lint
|