feat: footer 显示 Git 提交版本与编译时间(-ldflags 注入 buildinfo)
This commit is contained in:
5 files changed
+35
-1
No files matched your search
@@ -0,0 +1,25 @@
|
||||
// Package buildinfo 保存编译时通过 -ldflags -X 注入的版本信息,
|
||||
// 部署时由 install_linux.sh 注入 Git 提交哈希与编译时间。
|
||||
package buildinfo
|
||||
|
||||
import "fmt"
|
||||
|
||||
// Commit 是编译时的 Git 短提交哈希(-X go_blog/buildinfo.Commit=<sha>)。
|
||||
// 未注入时回退为 "dev"。
|
||||
var Commit string
|
||||
|
||||
// BuildTime 是编译时间(UTC,-X go_blog/buildinfo.BuildTime=<time>)。
|
||||
// 未注入时回退为 "unknown"。
|
||||
var BuildTime string
|
||||
|
||||
// String 返回展示用的版本字符串,如 "v443eccb · 2026-08-27T12:00:00Z"。
|
||||
func String() string {
|
||||
commit, buildTime := Commit, BuildTime
|
||||
if commit == "" {
|
||||
commit = "dev"
|
||||
}
|
||||
if buildTime == "" {
|
||||
buildTime = "unknown"
|
||||
}
|
||||
return fmt.Sprintf("v%s · %s", commit, buildTime)
|
||||
}
|
||||
@@ -49,6 +49,7 @@ func DefaultData(c *gin.Context) gin.H {
|
||||
siteFooterText, _ := c.Get("site_footer_text")
|
||||
navLinks, _ := c.Get("nav_links")
|
||||
csrfToken, _ := c.Get("csrf_token")
|
||||
buildInfo, _ := c.Get("build_info")
|
||||
|
||||
return gin.H{
|
||||
"Tr": tr,
|
||||
@@ -71,6 +72,7 @@ func DefaultData(c *gin.Context) gin.H {
|
||||
"SiteFooterText": siteFooterText,
|
||||
"NavLinks": navLinks,
|
||||
"CSRFToken": csrfToken,
|
||||
"BuildInfo": buildInfo,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ echo "拉取最新代码..."
|
||||
git pull
|
||||
|
||||
echo "编译 Go 程序..."
|
||||
go build -o "${BINARY_NAME}" .
|
||||
go build -ldflags "-X go_blog/buildinfo.Commit=$(git rev-parse --short HEAD) -X go_blog/buildinfo.BuildTime=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" -o "${BINARY_NAME}" .
|
||||
|
||||
echo "检查系统用户..."
|
||||
if ! id -u "${SERVICE_USER}" >/dev/null 2>&1; then
|
||||
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"go_blog/buildinfo"
|
||||
"go_blog/i18n"
|
||||
"go_blog/models"
|
||||
)
|
||||
@@ -224,6 +225,9 @@ func SetUserContext(db *gorm.DB) gin.HandlerFunc {
|
||||
navLinks := models.GetNavLinks()
|
||||
c.Set("nav_links", navLinks)
|
||||
|
||||
// --- 构建信息(编译时注入的 Git 版本与编译时间)---
|
||||
c.Set("build_info", buildinfo.String())
|
||||
|
||||
c.Next()
|
||||
}
|
||||
}
|
||||
@@ -173,6 +173,9 @@
|
||||
<div class="text-center text-gray-500 text-xs">
|
||||
{{if .SiteFooterText}}{{.SiteFooterText}}{{else}}{{index .Tr "footer_text"}}{{end}}
|
||||
</div>
|
||||
<div class="text-center text-gray-400 text-[10px] mt-1">
|
||||
{{.BuildInfo}}
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<script>
|
||||
|
||||
Reference in New Issue
Block a user