feat: 添加微服务模板基础架构

- 创建基于 CloudWego Hertz 的 Go 微服务脚手架
- 集成 Nacos 服务注册/发现功能
- 添加 gRPC 客户端支持
- 实现环境变量配置管理 (.env.example)
- 添加 HTTP 中间件 (Recovery, AccessLog, CORS)
- 配置 Gitea CI/CD 构建部署流程

BREAKING CHANGE: 项目结构调整,从简单的 API 服务升级为完整的微服务架构
This commit is contained in:
shiran
2026-04-15 11:13:38 +08:00
parent 8654cd6e5c
commit 6050d11f27
30 changed files with 1643 additions and 358 deletions
+16 -16
View File
@@ -1,4 +1,4 @@
name: 'Build ApiServer'
name: 'Build & Deploy'
on:
push:
tags:
@@ -14,16 +14,16 @@ jobs:
- name: Build Action
run: |
go build -o quantumProfit ./cmd/main_program
go build -o cliControl ./cmd/cli_control
go build -ldflags="-s -w" -o server ./cmd/main_program
go build -ldflags="-s -w" -o cli ./cmd/cli_control
- name: Save artifact
uses: actions/upload-artifact@v3
with:
name: quantumProfit
name: build-artifacts
path: |
./quantumProfit
./cliControl
./server
./cli
deploy:
needs: build
@@ -32,16 +32,14 @@ jobs:
- name: Download Artifact
uses: actions/download-artifact@v3
with:
name: quantumProfit
name: build-artifacts
- name: Set up SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.PUBLICT_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
# 将服务器列表写入临时文件
echo "${{ vars.DEPLOY_SERVER_LIST }}" > server_list.txt
# 读取文件并为每个服务器设置 SSH
while read -r ip; do
if [ -n "$ip" ]; then
ssh-keyscan -H "$ip" >> ~/.ssh/known_hosts
@@ -50,15 +48,17 @@ jobs:
- name: Deploy to servers
run: |
# 读取临时文件并循环部署
while read -r ip; do
if [ -n "$ip" ]; then
echo "Deploying to $ip..."
scp -o StrictHostKeyChecking=no quantumProfit ${{ vars.ROOT_USER_NAME }}@"$ip":/root/quantumProfit.tmp
scp -o StrictHostKeyChecking=no cliControl ${{ vars.ROOT_USER_NAME }}@"$ip":/root/cliControl.tmp
ssh -n ${{ vars.ROOT_USER_NAME }}@"$ip" "mv /root/quantumProfit.tmp /root/quantumProfit" < /dev/null
ssh -n ${{ vars.ROOT_USER_NAME }}@"$ip" "mv /root/cliControl.tmp /root/cliControl" < /dev/null
ssh -n ${{ vars.ROOT_USER_NAME }}@"$ip" "cd /root && bash ./chmodFile.sh" < /dev/null
scp -o StrictHostKeyChecking=no server ${{ vars.ROOT_USER_NAME }}@"$ip":/root/server.tmp
scp -o StrictHostKeyChecking=no cli ${{ vars.ROOT_USER_NAME }}@"$ip":/root/cli.tmp
ssh -n ${{ vars.ROOT_USER_NAME }}@"$ip" << 'ENDSSH'
mv /root/server.tmp /root/server
mv /root/cli.tmp /root/cli
chmod +x /root/server /root/cli
systemctl restart server cli
ENDSSH
echo "Deployment to $ip completed"
fi
done < server_list.txt
done < server_list.txt