.DEFAULT_GOAL := build # 更新 GoFrame 及 CLI 到最新稳定版。 .PHONY: up up: cli.install @gf up -a # 使用 hack/config.yaml 中的配置构建二进制。 .PHONY: build build: cli.install @gf build -ew # 解析 api 目录并生成 controller/sdk。 .PHONY: ctrl ctrl: cli.install @gf gen ctrl # 生成 DAO/DO/Entity 的 Go 代码。 .PHONY: dao dao: cli.install @gf gen dao # 解析当前项目 Go 文件并生成枚举文件。 .PHONY: enums enums: cli.install @gf gen enums # 生成 Service 接口与实现代码。 .PHONY: service service: cli.install @gf gen service # 构建 Docker 镜像。 .PHONY: image image: cli.install $(eval _TAG = $(shell git rev-parse --short HEAD)) ifneq (, $(shell git status --porcelain 2>/dev/null)) $(eval _TAG = $(_TAG).dirty) endif $(eval _TAG = $(if ${TAG}, ${TAG}, $(_TAG))) $(eval _PUSH = $(if ${PUSH}, ${PUSH}, )) @gf docker ${_PUSH} -tn $(DOCKER_NAME):${_TAG}; # 构建 Docker 镜像并自动推送到镜像仓库。 .PHONY: image.push image.push: cli.install @make image PUSH=-p; # 部署镜像与 yaml 到当前 kubectl 环境。 .PHONY: deploy deploy: cli.install $(eval _TAG = $(if ${TAG}, ${TAG}, develop)) @set -e; \ mkdir -p $(ROOT_DIR)/temp/kustomize;\ cd $(ROOT_DIR)/manifest/deploy/kustomize/overlays/${_ENV};\ kustomize build > $(ROOT_DIR)/temp/kustomize.yaml;\ kubectl apply -f $(ROOT_DIR)/temp/kustomize.yaml; \ if [ $(DEPLOY_NAME) != "" ]; then \ kubectl patch -n $(NAMESPACE) deployment/$(DEPLOY_NAME) -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"$(shell date +%s)\"}}}}}"; \ fi; # 解析 protobuf 文件并生成 Go 代码。 .PHONY: pb pb: cli.install @gf gen pb # 根据数据库表生成 protobuf 文件。 .PHONY: pbentity pbentity: cli.install @gf gen pbentity