Files
proto/Makefile
2025-08-20 22:37:07 +08:00

86 lines
2.6 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Makefile for generating protobuf files
# 设置变量
BUF := buf
GEN_DIR := gen
GO_MOD := git.0yue.com/shenxianhe/sdk
GO_SDK_REPO := https://git.0yue.com/shenxianhe/sdk.git
# 默认目标 - 显示帮助信息
.DEFAULT_GOAL := help
# 生成pb文件的主目标 - 包含公共处理部分和各语言私有处理部分
.PHONY: generate
generate: common-gen language-gen
# 公共处理部分
.PHONY: common-gen
common-gen: lint clean generate-pb
# 语言特定处理部分目前只有go
.PHONY: language-gen
language-gen: init-go generate-go-readme
# 执行buf lint检查
.PHONY: lint
lint:
@echo "运行buf lint检查..."
$(BUF) lint
# 清理gen目录
.PHONY: clean
clean:
@echo "清理$(GEN_DIR)目录..."
@if [ -d "$(GEN_DIR)" ]; then rm -rf $(GEN_DIR); fi
# 执行buf generate生成pb文件
.PHONY: generate-pb
generate-pb:
@echo "生成protobuf文件..."
$(BUF) generate
# Go语言特定初始化
.PHONY: init-go
init-go:
@echo "$(GEN_DIR)/go目录初始化go module..."
cd $(GEN_DIR)/go && go mod init $(GO_MOD) && go mod tidy
# 发布命令 - 目前只处理go语言
.PHONY: publish
publish:
@echo "开始发布流程..."
# 确保版本号管理脚本可执行
@chmod +x script/get_next_version.sh
# 调用版本号管理脚本获取新版本号
@echo "正在生成新版本号..."
@script/get_next_version.sh
# 调用各个语言的发布目标
@$(MAKE) publish-go
# Go语言代码发布子命令
.PHONY: publish-go
publish-go: generate
@echo "发布生成的代码到 $(GO_SDK_REPO)..."
# 确保git发布脚本可执行并调用git发布脚本内部会自己获取版本号
chmod +x script/publish-git.sh && script/publish-git.sh "$(GO_SDK_REPO)" "$(GEN_DIR)/go"
# 生成Go SDK的README文件
.PHONY: generate-go-readme
generate-go-readme:
@echo "生成Go SDK的README文件..."
@mkdir -p $(GEN_DIR)/go
@cp templates/go-sdk-readme.md $(GEN_DIR)/go/README.md
# 帮助信息
.PHONY: help
help:
@echo "可用的目标:"
@echo " generate - 生成 protobuf 文件"
@echo " lint - 运行 $(BUF) lint 检查 proto 文件是否有问题"
@echo " clean - 删除 $(GEN_DIR) 目录"
@echo " generate-pb - 使用 $(BUF) generate 生成 protobuf 文件"
@echo " init-go - 在 $(GEN_DIR)/go 目录初始化go module"
@echo " generate-go-readme - 生成Go SDK的README文件包含使用示例和版本说明"
@echo " publish - 发布生成的 protobuf 代码"
@echo " publish-go - 发布go语言代码到 $(GO_SDK_REPO) 仓库并自动打tag"
@echo " help - 显示此帮助信息"