From 28aec984146f145c5ae73f1cf7273e21009c460a Mon Sep 17 00:00:00 2001 From: YGXB_net Date: Thu, 30 Apr 2026 22:06:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(api):=20=E6=B7=BB=E5=8A=A0=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3=E5=B9=B6=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E6=9E=84=E5=BB=BA=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在api路由中添加/version接口用于显示程序版本信息 - 集成全局Version变量用于版本号管理 - 修改Dockerfile支持版本号注入构建参数 - 更新开发环境部署工作流添加版本信息构建 - 更新生产环境部署工作流添加版本信息构建 - 实现在版本接口中展示程序版本和Gin框架版本 --- .gitea/workflows/deploy-dev.yaml | 6 +++++- .gitea/workflows/deploy-production.yaml | 6 +++++- Dockerfile | 6 +++++- api/api.go | 5 +++++ global/global.go | 2 ++ 5 files changed, 22 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/deploy-dev.yaml b/.gitea/workflows/deploy-dev.yaml index caeb5ed..ad2b40b 100644 --- a/.gitea/workflows/deploy-dev.yaml +++ b/.gitea/workflows/deploy-dev.yaml @@ -11,7 +11,11 @@ jobs: uses: actions/checkout@v4 - name: 构建Docker镜像 - run: docker build -t dypid:latest . + run: | + set -x + git_hash=$(git rev-parse --short "$GITHUB_SHA") + build_date=$(TZ=Asia/Shanghai date +"%Y%m%d%H%M") + docker build --build-arg VERSION="dev - $build_date - $git_hash" -t dypid:latest . - name: 导出镜像 run: mkdir release && docker save -o release/dypid.tar dypid:latest && docker rmi dypid:latest diff --git a/.gitea/workflows/deploy-production.yaml b/.gitea/workflows/deploy-production.yaml index d5a674b..461df8e 100644 --- a/.gitea/workflows/deploy-production.yaml +++ b/.gitea/workflows/deploy-production.yaml @@ -12,7 +12,11 @@ jobs: uses: actions/checkout@v4 - name: 构建Docker镜像 - run: docker build -t dypid:latest . + run: | + set -x + git_hash=$(git rev-parse --short "$GITHUB_SHA") + build_date=$(TZ=Asia/Shanghai date +"%Y%m%d%H%M") + docker build --build-arg VERSION="release - $build_date - $git_hash" -t dypid:latest . - name: 导出镜像 run: mkdir release && docker save -o release/dypid.tar dypid:latest && docker rmi dypid:latest diff --git a/Dockerfile b/Dockerfile index 620448c..ddd4647 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,9 +15,13 @@ WORKDIR /build COPY . . COPY --from=webBuilder /build/dist ./web/dist +ARG VERSION + RUN go env -w CGO_ENABLED=0 \ && go mod tidy \ - && go build -o dypid + && go build \ + -ldflags="-s -w -X 'global.Version=$VERSION'" \ + -o dypid FROM alpine diff --git a/api/api.go b/api/api.go index cd71455..52ebca7 100644 --- a/api/api.go +++ b/api/api.go @@ -1,8 +1,10 @@ package api import ( + "dypid/global" "dypid/internal/controller" "embed" + "fmt" "io/fs" "net/http" @@ -15,6 +17,9 @@ func RegRoutes(r *gin.Engine) { g.GET("/test", func(context *gin.Context) { context.String(http.StatusOK, "ok") }) + g.GET("/version", func(context *gin.Context) { + context.String(http.StatusOK, fmt.Sprintf("程序版本: %s\nGin: %s", global.Version, gin.Version)) + }) } { g.GET("/token", controller.ListTokenHandler) //获取token列表 diff --git a/global/global.go b/global/global.go index 61dfd20..64e1860 100644 --- a/global/global.go +++ b/global/global.go @@ -8,3 +8,5 @@ import ( var RDB *redis.Client var RCtx = context.Background() + +var Version = "dev"