支持生成、发布 Typescript SDK
This commit is contained in:
47
Makefile
47
Makefile
@@ -5,6 +5,8 @@ BUF := buf
|
||||
GEN_DIR := gen
|
||||
GO_MOD := git.0yue.com/shenxianhe/sdk
|
||||
GO_SDK_REPO := https://git.0yue.com/shenxianhe/sdk.git
|
||||
TS_PACKAGE_NAME := @shenxianhe/sdk
|
||||
TS_SDK_REPO := https://git.0yue.com/shenxianhe/sdk-ts.git
|
||||
|
||||
# 默认目标 - 显示帮助信息
|
||||
.DEFAULT_GOAL := help
|
||||
@@ -17,9 +19,9 @@ 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
|
||||
language-gen: init-go generate-go-readme init-ts generate-ts-readme
|
||||
|
||||
# 执行buf lint检查
|
||||
.PHONY: lint
|
||||
@@ -45,7 +47,23 @@ init-go:
|
||||
@echo "在$(GEN_DIR)/go目录初始化go module..."
|
||||
cd $(GEN_DIR)/go && go mod init $(GO_MOD) && go mod tidy
|
||||
|
||||
# 发布命令 - 目前只处理go语言
|
||||
# TypeScript特定初始化
|
||||
.PHONY: init-ts
|
||||
init-ts:
|
||||
@echo "在$(GEN_DIR)/ts目录初始化npm项目..."
|
||||
@mkdir -p $(GEN_DIR)/ts
|
||||
@echo "创建package.json文件..."
|
||||
@VERSION=$$(cat version.txt) && \
|
||||
sed -e "s|{{TS_PACKAGE_NAME}}|$(TS_PACKAGE_NAME)|g" \
|
||||
-e "s|{{VERSION}}|$$VERSION|g" \
|
||||
-e "s|{{TS_SDK_REPO}}|$(TS_SDK_REPO)|g" \
|
||||
templates/ts-package.json.tpl > $(GEN_DIR)/ts/package.json
|
||||
@echo "创建tsconfig.json文件..."
|
||||
@echo '{"compilerOptions":{"target":"ES2019","module":"CommonJS","strict":true,"esModuleInterop":true,"skipLibCheck":true,"forceConsistentCasingInFileNames":true},"include":["./"]}' > $(GEN_DIR)/ts/tsconfig.json
|
||||
@echo "安装必要的依赖..."
|
||||
@cd $(GEN_DIR)/ts && npm install
|
||||
|
||||
# 发布命令
|
||||
.PHONY: publish
|
||||
publish:
|
||||
@echo "开始发布流程..."
|
||||
@@ -55,7 +73,7 @@ publish:
|
||||
@echo "正在生成新版本号..."
|
||||
@script/get_next_version.sh
|
||||
# 调用各个语言的发布目标
|
||||
@$(MAKE) publish-go
|
||||
@$(MAKE) publish-go publish-ts
|
||||
|
||||
# Go语言代码发布子命令
|
||||
.PHONY: publish-go
|
||||
@@ -64,6 +82,15 @@ publish-go: generate
|
||||
# 确保git发布脚本可执行并调用git发布脚本(内部会自己获取版本号)
|
||||
chmod +x script/publish-git.sh && script/publish-git.sh "$(GO_SDK_REPO)" "$(GEN_DIR)/go"
|
||||
|
||||
# TypeScript代码发布子命令
|
||||
.PHONY: publish-ts
|
||||
publish-ts: generate
|
||||
@echo "准备发布TypeScript SDK到npm仓库..."
|
||||
# 获取版本号
|
||||
@VERSION=$$(cat version.txt) && \
|
||||
chmod +x script/publish-npm.sh && \
|
||||
script/publish-npm.sh "$(TS_PACKAGE_NAME)" "$$VERSION" "$(GEN_DIR)/ts"
|
||||
|
||||
# 生成Go SDK的README文件
|
||||
.PHONY: generate-go-readme
|
||||
generate-go-readme:
|
||||
@@ -71,6 +98,13 @@ generate-go-readme:
|
||||
@mkdir -p $(GEN_DIR)/go
|
||||
@cp templates/go-sdk-readme.md $(GEN_DIR)/go/README.md
|
||||
|
||||
# 生成TypeScript SDK的README文件
|
||||
.PHONY: generate-ts-readme
|
||||
generate-ts-readme:
|
||||
@echo "生成TypeScript SDK的README文件..."
|
||||
@mkdir -p $(GEN_DIR)/ts
|
||||
@cp templates/ts-sdk-readme.md $(GEN_DIR)/ts/README.md
|
||||
|
||||
# 帮助信息
|
||||
.PHONY: help
|
||||
help:
|
||||
@@ -80,7 +114,10 @@ help:
|
||||
@echo " clean - 删除 $(GEN_DIR) 目录"
|
||||
@echo " generate-pb - 使用 $(BUF) generate 生成 protobuf 文件"
|
||||
@echo " init-go - 在 $(GEN_DIR)/go 目录初始化go module"
|
||||
@echo " init-ts - 在 $(GEN_DIR)/ts 目录初始化npm项目"
|
||||
@echo " generate-go-readme - 生成Go SDK的README文件,包含使用示例和版本说明"
|
||||
@echo " publish - 发布生成的 protobuf 代码"
|
||||
@echo " generate-ts-readme - 生成TypeScript SDK的README文件,包含使用示例和版本说明"
|
||||
@echo " publish - 发布生成的 protobuf 代码(Go和TypeScript)"
|
||||
@echo " publish-go - 发布go语言代码到 $(GO_SDK_REPO) 仓库,并自动打tag"
|
||||
@echo " publish-ts - 发布TypeScript SDK到npm仓库,需先设置NPM_AUTH_TOKEN环境变量"
|
||||
@echo " help - 显示此帮助信息"
|
||||
Reference in New Issue
Block a user