Make goreleaser set the version

This commit is contained in:
Justin Hawkins 2025-05-02 19:34:06 +09:30
parent 4436313413
commit bfe9bbee02
3 changed files with 18 additions and 14 deletions

View File

@ -7,6 +7,8 @@ before:
builds: builds:
- main: ./cmd/linkwallet/ - main: ./cmd/linkwallet/
ldflags:
- -s -w -X github.com/tardisx/linkwallet/version.version={{.Version}} -X github.com/tardisx/linkwallet/version.commit={{.Commit}} -X github.com/tardisx/linkwallet/version.date={{.Date}}
env: env:
- CGO_ENABLED=0 - CGO_ENABLED=0
goos: goos:

View File

@ -6,7 +6,7 @@ import (
"time" "time"
"github.com/tardisx/linkwallet/db" "github.com/tardisx/linkwallet/db"
"github.com/tardisx/linkwallet/version" v "github.com/tardisx/linkwallet/version"
"github.com/tardisx/linkwallet/web" "github.com/tardisx/linkwallet/web"
) )
@ -31,7 +31,7 @@ func main() {
go func() { go func() {
for { for {
version.VersionInfo.UpdateVersionInfo() v.VersionInfo.UpdateVersionInfo()
time.Sleep(time.Hour * 6) time.Sleep(time.Hour * 6)
} }
}() }()
@ -47,7 +47,7 @@ func main() {
} }
}() }()
log.Printf("linkwallet version %s starting", version.VersionInfo.Local.Tag) log.Printf("linkwallet version %s starting", v.VersionInfo.Local.Version)
server := web.Create(bmm, cmm) server := web.Create(bmm, cmm)
go bmm.RunQueue() go bmm.RunQueue()

View File

@ -10,11 +10,20 @@ import (
"golang.org/x/mod/semver" "golang.org/x/mod/semver"
) )
const Tag = "v0.1.0-alpha.0" var version string
var commit string
var date string
var VersionInfo Info
func init() {
VersionInfo.Remote.Valid = false
VersionInfo.Local.Version = version
}
type Info struct { type Info struct {
Local struct { Local struct {
Tag string Version string
} }
Remote struct { Remote struct {
Valid bool Valid bool
@ -24,20 +33,13 @@ type Info struct {
m sync.Mutex m sync.Mutex
} }
var VersionInfo Info
func init() {
VersionInfo.Remote.Valid = false
VersionInfo.Local.Tag = Tag
}
func (vi *Info) UpgradeAvailable() bool { func (vi *Info) UpgradeAvailable() bool {
vi.m.Lock() vi.m.Lock()
defer vi.m.Unlock() defer vi.m.Unlock()
if !vi.Remote.Valid { if !vi.Remote.Valid {
return false return false
} }
if semver.Compare(vi.Local.Tag, vi.Remote.Tag) < 0 { if semver.Compare(vi.Local.Version, vi.Remote.Tag) < 0 {
return true return true
} }
return false return false
@ -59,7 +61,7 @@ func (vi *Info) UpdateVersionInfo() {
vi.Remote.Valid = true vi.Remote.Valid = true
vi.UpgradeReleaseNotes = "" vi.UpgradeReleaseNotes = ""
for _, r := range rels { for _, r := range rels {
if semver.Compare(VersionInfo.Local.Tag, *r.TagName) < 0 { if semver.Compare(VersionInfo.Local.Version, *r.TagName) < 0 {
vi.UpgradeReleaseNotes += fmt.Sprintf("*Version %s*\n\n", *r.TagName) vi.UpgradeReleaseNotes += fmt.Sprintf("*Version %s*\n\n", *r.TagName)
bodyLines := strings.Split(*r.Body, "\n") bodyLines := strings.Split(*r.Body, "\n")
for _, l := range bodyLines { for _, l := range bodyLines {