Skip to content

Commit e50ef66

Browse files
author
enzopang
committed
chore: fix version synchronization using ldflags
- Remove hardcoded AppVersion constant from CLI - Use ldflags to inject version at build time - Update goreleaser config to pass version via ldflags
1 parent 99e9c90 commit e50ef66

3 files changed

Lines changed: 12 additions & 2 deletions

File tree

.goreleaser.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ builds:
2828
ldflags:
2929
- -s
3030
- -w
31+
- -X main.version={{.Version}}
3132
main: ./cli
3233
archives:
3334
- format: tar.gz

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## Unreleased
44

5+
## v0.0.15
6+
7+
- Fix version synchronization between CLI and Git tag using ldflags.
8+
59
## v0.0.8
610

711
- More test cases.

cli/jsonrepair-cli.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ import (
77
"os"
88
)
99

10-
const AppVersion = "0.0.14"
10+
// 通过 ldflags 在构建时注入版本号
11+
// go build -ldflags "-X main.version=x.x.x"
12+
var version string
1113

1214
var (
1315
versionFlag bool
@@ -52,7 +54,10 @@ func cliInner() string {
5254
flag.Parse()
5355

5456
if versionFlag {
55-
return fmt.Sprintf("Version: %s", AppVersion)
57+
if version == "" {
58+
version = "dev"
59+
}
60+
return fmt.Sprintf("Version: %s", version)
5661
} else if helpFlag {
5762
printDefaults()
5863
return ""

0 commit comments

Comments
 (0)