feat(api): 添加版本信息接口并完善构建流程
部署开发环境 / deploy-dev (push) Successful in 1m22s

- 在api路由中添加/version接口用于显示程序版本信息
- 集成全局Version变量用于版本号管理
- 修改Dockerfile支持版本号注入构建参数
- 更新开发环境部署工作流添加版本信息构建
- 更新生产环境部署工作流添加版本信息构建
- 实现在版本接口中展示程序版本和Gin框架版本
This commit is contained in:
2026-04-30 22:06:21 +08:00
parent 6d379714cd
commit 28aec98414
5 changed files with 22 additions and 3 deletions
+5 -1
View File
@@ -11,7 +11,11 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: 构建Docker镜像 - 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: 导出镜像 - name: 导出镜像
run: mkdir release && docker save -o release/dypid.tar dypid:latest && docker rmi dypid:latest run: mkdir release && docker save -o release/dypid.tar dypid:latest && docker rmi dypid:latest
+5 -1
View File
@@ -12,7 +12,11 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: 构建Docker镜像 - 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: 导出镜像 - name: 导出镜像
run: mkdir release && docker save -o release/dypid.tar dypid:latest && docker rmi dypid:latest run: mkdir release && docker save -o release/dypid.tar dypid:latest && docker rmi dypid:latest
+5 -1
View File
@@ -15,9 +15,13 @@ WORKDIR /build
COPY . . COPY . .
COPY --from=webBuilder /build/dist ./web/dist COPY --from=webBuilder /build/dist ./web/dist
ARG VERSION
RUN go env -w CGO_ENABLED=0 \ RUN go env -w CGO_ENABLED=0 \
&& go mod tidy \ && go mod tidy \
&& go build -o dypid && go build \
-ldflags="-s -w -X 'global.Version=$VERSION'" \
-o dypid
FROM alpine FROM alpine
+5
View File
@@ -1,8 +1,10 @@
package api package api
import ( import (
"dypid/global"
"dypid/internal/controller" "dypid/internal/controller"
"embed" "embed"
"fmt"
"io/fs" "io/fs"
"net/http" "net/http"
@@ -15,6 +17,9 @@ func RegRoutes(r *gin.Engine) {
g.GET("/test", func(context *gin.Context) { g.GET("/test", func(context *gin.Context) {
context.String(http.StatusOK, "ok") 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列表 g.GET("/token", controller.ListTokenHandler) //获取token列表
+2
View File
@@ -8,3 +8,5 @@ import (
var RDB *redis.Client var RDB *redis.Client
var RCtx = context.Background() var RCtx = context.Background()
var Version = "dev"