build(release): add tag-based release automation and version metadata

This commit is contained in:
alphago9
2026-03-30 01:37:08 +08:00
parent fc8d58024e
commit dea81caa61
11 changed files with 312 additions and 69 deletions
+52 -24
View File
@@ -1,44 +1,72 @@
# This is an example .goreleaser.yml file with some sensible defaults.
# Make sure to check the documentation at https://goreleaser.com
version: 2
project_name: epusdt
before:
hooks:
# You may remove this if you don't use go modules.
#- go mod tidy
# you may remove this if you don't need go generate
#- go generate ./...
- go test ./...
builds:
- env:
- id: epusdt
main: .
binary: epusdt
env:
- CGO_ENABLED=0
flags:
- -trimpath
ldflags:
- -s -w -X github.com/assimon/luuu/config.BuildVersion={{ .Version }} -X github.com/assimon/luuu/config.BuildCommit={{ .Commit }} -X github.com/assimon/luuu/config.BuildDate={{ .Date }}
goos:
- darwin
- linux
- darwin
- windows
goarch:
- amd64
- arm
- 386
- arm64
archives:
- replacements:
darwin: Darwin
linux: Linux
windows: Windows
386: i386
amd64: x86_64
id: epusdt
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}"
format: tar.gz
- id: epusdt
ids:
- epusdt
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
files:
- .env.example
- static/*
- runtime/*
- static/**
format_overrides:
- goos: windows
formats:
- zip
checksum:
name_template: 'checksums.txt'
name_template: "{{ .ProjectName }}_{{ .Version }}_checksums.txt"
signs:
- cmd: cosign
signature: "${artifact}.sigstore.json"
args:
- "sign-blob"
- "--bundle=${signature}"
- "${artifact}"
- "--yes"
artifacts: checksum
sboms:
- id: archives
artifacts: archive
snapshot:
name_template: "{{ incpatch .Version }}-next"
release:
github:
owner: GMwalletApp
name: epusdt
changelog:
sort: asc
filters:
exclude:
- '^docs:'
- '^test:'
- "^docs:"
- "^test:"
- "^chore:"
- "^ci:"
+12 -11
View File
@@ -1,7 +1,8 @@
package bootstrap
import (
"github.com/assimon/luuu/command"
"sync"
"github.com/assimon/luuu/config"
"github.com/assimon/luuu/model/dao"
"github.com/assimon/luuu/mq"
@@ -10,15 +11,15 @@ import (
"github.com/assimon/luuu/util/log"
)
func Start() {
config.Init()
log.Init()
dao.Init()
mq.Start()
go telegram.BotStart()
go task.Start()
var initOnce sync.Once
if err := command.Execute(); err != nil {
panic(err)
}
func InitApp() {
initOnce.Do(func() {
config.Init()
log.Init()
dao.Init()
mq.Start()
go telegram.BotStart()
go task.Start()
})
}
+18
View File
@@ -0,0 +1,18 @@
package command
import (
"github.com/assimon/luuu/config"
"github.com/gookit/color"
)
func printBanner() {
color.Green.Printf("%s\n", " _____ _ _ \n | ____|_ __ _ _ ___ __| | |_ \n | _| | '_ \\| | | / __|/ _` | __|\n | |___| |_) | |_| \\__ \\ (_| | |_ \n |_____| .__/ \\__,_|___/\\__,_|\\__|\n |_| ")
color.Infof(
"Epusdt version(%s) commit(%s) built(%s) Powered by %s %s \n",
config.GetAppVersion(),
config.GetBuildCommit(),
config.GetBuildDate(),
"GMwalletApp",
"https://github.com/GMwalletApp/epusdt",
)
}
+8 -4
View File
@@ -2,6 +2,12 @@ package command
import (
"context"
"net/http"
"os"
"os/signal"
"time"
"github.com/assimon/luuu/bootstrap"
"github.com/assimon/luuu/config"
"github.com/assimon/luuu/middleware"
"github.com/assimon/luuu/route"
@@ -12,10 +18,6 @@ import (
echoMiddleware "github.com/labstack/echo/v4/middleware"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"net/http"
"os"
"os/signal"
"time"
)
var httpCmd = &cobra.Command{
@@ -35,6 +37,8 @@ var startCmd = &cobra.Command{
Short: "启动",
Long: "启动http服务",
Run: func(cmd *cobra.Command, args []string) {
bootstrap.InitApp()
printBanner()
HttpServerStart()
},
}
+26
View File
@@ -0,0 +1,26 @@
package command
import (
"fmt"
"github.com/assimon/luuu/config"
"github.com/spf13/cobra"
)
var versionCmd = &cobra.Command{
Use: "version",
Short: "Print build version information",
RunE: func(cmd *cobra.Command, args []string) error {
_, err := fmt.Fprintf(cmd.OutOrStdout(),
"version: %s\ncommit: %s\nbuilt: %s\n",
config.GetAppVersion(),
config.GetBuildCommit(),
config.GetBuildDate(),
)
return err
},
}
func init() {
rootCmd.AddCommand(versionCmd)
}
+21 -10
View File
@@ -11,15 +11,18 @@ import (
)
var (
AppDebug bool
MysqlDns string
RuntimePath string
LogSavePath string
StaticPath string
TgBotToken string
TgProxy string
TgManage int64
UsdtRate float64
AppDebug bool
MysqlDns string
RuntimePath string
LogSavePath string
StaticPath string
TgBotToken string
TgProxy string
TgManage int64
UsdtRate float64
BuildVersion = "0.0.0-dev"
BuildCommit = "none"
BuildDate = "unknown"
)
func Init() {
@@ -65,7 +68,15 @@ func mustMkdir(path string) {
}
func GetAppVersion() string {
return "0.0.2"
return BuildVersion
}
func GetBuildCommit() string {
return BuildCommit
}
func GetBuildDate() string {
return BuildDate
}
func GetAppName() string {
+4 -5
View File
@@ -1,8 +1,7 @@
package main
import (
"github.com/assimon/luuu/bootstrap"
"github.com/assimon/luuu/config"
"github.com/assimon/luuu/command"
"github.com/gookit/color"
)
@@ -12,7 +11,7 @@ func main() {
color.Error.Println("[Start Server Err!!!] ", err)
}
}()
color.Green.Printf("%s\n", " _____ _ _ \n | ____|_ __ _ _ ___ __| | |_ \n | _| | '_ \\| | | / __|/ _` | __|\n | |___| |_) | |_| \\__ \\ (_| | |_ \n |_____| .__/ \\__,_|___/\\__,_|\\__|\n |_| ")
color.Infof("Epusdt version(%s) Powered by %s %s \n", config.GetAppVersion(), "GMwalletApp", "https://github.com/GMwalletApp/epusdt")
bootstrap.Start()
if err := command.Execute(); err != nil {
panic(err)
}
}