完成初步可运行环境
This commit is contained in:
@@ -0,0 +1,168 @@
|
||||
# Makefile for Your Golang Monorepo Project
|
||||
PROJECT_NAME := $(shell basename $(CURDIR))
|
||||
|
||||
# Variables
|
||||
GO := go
|
||||
BUILD_DIR := build
|
||||
BIN_DIR := $(BUILD_DIR)/bin
|
||||
LDFLAGS := -w -s
|
||||
|
||||
VERSION := $(shell git describe --tags --always)
|
||||
|
||||
# Targets
|
||||
.PHONY: all help version
|
||||
.PHONY: lint clean
|
||||
|
||||
all: help
|
||||
|
||||
help: ## show help
|
||||
@grep -hE '^[ a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
|
||||
awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-17s\033[0m %s\n", $$1, $$2}'
|
||||
|
||||
version: ## show version
|
||||
@echo $(VERSION)
|
||||
|
||||
.PHONY: dev
|
||||
dev: ## run dev server
|
||||
docker compose up --build
|
||||
|
||||
lint: ## run golangci-lint
|
||||
@golangci-lint run ./...
|
||||
|
||||
clean: ## clean build directory
|
||||
@rm -rf cover.out result.json ./deployments/charts/*.tgz
|
||||
@rm -rf $(BUILD_DIR)
|
||||
|
||||
.PHONY: gazelle
|
||||
gazelle: ## run gazelle with bazel
|
||||
@bazel run //:gazelle
|
||||
|
||||
.PHONY: build
|
||||
build: ## build go binary
|
||||
@bazel build //...
|
||||
|
||||
.PHONY: test
|
||||
test: ## test go binary
|
||||
@bazel test --verbose_failures //...
|
||||
|
||||
.PHONY: coverage
|
||||
coverage: ## generate coverage report
|
||||
@go test -json -coverprofile=cover.out ./... >result.json
|
||||
|
||||
.PHONY: gen-swagger
|
||||
gen-swagger: ## generate swagger
|
||||
@swag init -q -g impl.go -d ./adapter/restaurant/restful,./entity,./pkg \
|
||||
-o ./api/restaurant/restful --instanceName restaurant_restful --parseDependency
|
||||
|
||||
@swag init -q -g impl.go -d ./adapter/order/restful,./entity,./pkg \
|
||||
-o ./api/order/restful --instanceName order_restful --parseDependency
|
||||
|
||||
@swag init -q -g impl.go -d ./adapter/payment/restful,./entity,./pkg \
|
||||
-o ./api/payment/restful --instanceName payment_restful --parseDependency
|
||||
|
||||
@swag init -q -g impl.go -d ./adapter/user/restful,./entity,./pkg \
|
||||
-o ./api/user/restful --instanceName user_restful --parseDependency
|
||||
|
||||
@swag init -q -g impl.go -d ./adapter/logistics/restful,./entity,./pkg \
|
||||
-o ./api/logistics/restful --instanceName logistics_restful --parseDependency
|
||||
|
||||
@swag init -q -g impl.go -d ./adapter/notify/restful,./entity,./pkg \
|
||||
-o ./api/notify/restful --instanceName notify_restful --parseDependency
|
||||
|
||||
### testing
|
||||
.PHONY: test-api-order
|
||||
test-api-order: ## test api
|
||||
@k6 run --vus=1 --iterations=1 ./tests/k6/order.api.test.js
|
||||
|
||||
.PHONY: test-api-user
|
||||
test-api-user: ## test api user
|
||||
@k6 run --vus=1 --iterations=1 ./tests/k6/user.api.test.js
|
||||
|
||||
.PHONY: test-stress
|
||||
test-stress: ## test load
|
||||
@k6 run --env SCENARIO=peak_load ./tests/k6/order.api.test.js --out=cloud
|
||||
|
||||
.PHONY: test-load
|
||||
test-load: ## test stress
|
||||
@k6 run --env SCENARIO=average_load ./tests/k6/order.api.test.js --out=cloud
|
||||
|
||||
## docker
|
||||
.PHONY: docker-push
|
||||
docker-push: ## push docker image
|
||||
@bazel run //:push --platforms=@rules_go//go/toolchain:linux_amd64 -- --tag=$(VERSION)
|
||||
|
||||
## deployments
|
||||
DEPLOY_TO := prod
|
||||
HELM_REPO_NAME := blackhorseya
|
||||
|
||||
.PHONY: deploy
|
||||
deploy: deploy-app deploy-storage ## deploy all
|
||||
|
||||
.PHONY: deploy-app
|
||||
deploy-app: deploy-restaurant-restful deploy-order-restful deploy-payment-restful deploy-user-restful deploy-logistics-restful deploy-notify-restful ## deploy app
|
||||
|
||||
.PHONY: deploy-restaurant-restful
|
||||
deploy-restaurant-restful: ## deploy restaurant
|
||||
@helm upgrade $(DEPLOY_TO)-godine-restaurant-restful $(HELM_REPO_NAME)/godine \
|
||||
--install --namespace $(PROJECT_NAME) \
|
||||
--history-max 3 \
|
||||
--values ./deployments/$(DEPLOY_TO)/godine-restaurant-restful.yaml
|
||||
|
||||
.PHONY: deploy-payment-restful
|
||||
deploy-payment-restful: ## deploy payment
|
||||
@helm upgrade $(DEPLOY_TO)-godine-payment-restful $(HELM_REPO_NAME)/godine \
|
||||
--install --namespace $(PROJECT_NAME) \
|
||||
--history-max 3 \
|
||||
--values ./deployments/$(DEPLOY_TO)/godine-payment-restful.yaml
|
||||
|
||||
.PHONY: deploy-order-restful
|
||||
deploy-order-restful: ## deploy order
|
||||
@helm upgrade $(DEPLOY_TO)-godine-order-restful $(HELM_REPO_NAME)/godine \
|
||||
--install --namespace $(PROJECT_NAME) \
|
||||
--history-max 3 \
|
||||
--values ./deployments/$(DEPLOY_TO)/godine-order-restful.yaml
|
||||
|
||||
.PHONY: deploy-user-restful
|
||||
deploy-user-restful: ## deploy user
|
||||
@helm upgrade $(DEPLOY_TO)-godine-user-restful $(HELM_REPO_NAME)/godine \
|
||||
--install --namespace $(PROJECT_NAME) \
|
||||
--history-max 3 \
|
||||
--values ./deployments/$(DEPLOY_TO)/godine-user-restful.yaml
|
||||
|
||||
.PHONY: deploy-logistics-restful
|
||||
deploy-logistics-restful: ## deploy logistics
|
||||
@helm upgrade $(DEPLOY_TO)-godine-logistics-restful $(HELM_REPO_NAME)/godine \
|
||||
--install --namespace $(PROJECT_NAME) \
|
||||
--history-max 3 \
|
||||
--values ./deployments/$(DEPLOY_TO)/godine-logistics-restful.yaml
|
||||
|
||||
.PHONY: deploy-notify-restful
|
||||
deploy-notify-restful: ## deploy notify
|
||||
@helm upgrade $(DEPLOY_TO)-godine-notify-restful $(HELM_REPO_NAME)/godine \
|
||||
--install --namespace $(PROJECT_NAME) \
|
||||
--history-max 3 \
|
||||
--values ./deployments/$(DEPLOY_TO)/godine-notify-restful.yaml
|
||||
|
||||
.PHONY: deploy-storage
|
||||
deploy-storage: deploy-mariadb deploy-mongodb deploy-redis ## deploy storage
|
||||
|
||||
.PHONY: deploy-mariadb
|
||||
deploy-mariadb: ## deploy mariadb
|
||||
@helm upgrade $(DEPLOY_TO)-godine-mariadb bitnami/mariadb \
|
||||
--install --namespace $(PROJECT_NAME) \
|
||||
--history-max 3 \
|
||||
--values ./deployments/$(DEPLOY_TO)/godine-mariadb.yaml
|
||||
|
||||
.PHONY: deploy-mongodb
|
||||
deploy-mongodb: ## deploy mongodb
|
||||
@helm upgrade $(DEPLOY_TO)-godine-mongodb bitnami/mongodb \
|
||||
--install --namespace $(PROJECT_NAME) \
|
||||
--history-max 3 \
|
||||
--values ./deployments/$(DEPLOY_TO)/godine-mongodb.yaml
|
||||
|
||||
.PHONY: deploy-redis
|
||||
deploy-redis: ## deploy redis
|
||||
@helm upgrade $(DEPLOY_TO)-godine-redis bitnami/redis \
|
||||
--install --namespace $(PROJECT_NAME) \
|
||||
--history-max 3 \
|
||||
--values ./deployments/$(DEPLOY_TO)/godine-redis.yaml
|
||||
Reference in New Issue
Block a user