File tree 9 files changed +3260
-7
lines changed
9 files changed +3260
-7
lines changed Original file line number Diff line number Diff line change @@ -47,11 +47,11 @@ $(GOLANGCI_LINT): $(BINGO_DIR)/golangci-lint.mod
47
47
@echo " (re)installing $( GOBIN) /golangci-lint-v1.51.2"
48
48
@cd $(BINGO_DIR ) && GOWORK=off $(GO ) build -mod=mod -modfile=golangci-lint.mod -o=$(GOBIN ) /golangci-lint-v1.51.2 " github.com/golangci/golangci-lint/cmd/golangci-lint"
49
49
50
- GORELEASER := $(GOBIN ) /goreleaser-v0.183.0
50
+ GORELEASER := $(GOBIN ) /goreleaser-v1.15.2
51
51
$(GORELEASER ) : $(BINGO_DIR ) /goreleaser.mod
52
52
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
53
- @echo " (re)installing $( GOBIN) /goreleaser-v0.183.0 "
54
- @cd $(BINGO_DIR ) && GOWORK=off $(GO ) build -mod=mod -modfile=goreleaser.mod -o=$(GOBIN ) /goreleaser-v0.183.0 " github.com/goreleaser/goreleaser"
53
+ @echo " (re)installing $( GOBIN) /goreleaser-v1.15.2 "
54
+ @cd $(BINGO_DIR ) && GOWORK=off $(GO ) build -mod=mod -modfile=goreleaser.mod -o=$(GOBIN ) /goreleaser-v1.15.2 " github.com/goreleaser/goreleaser"
55
55
56
56
GOTEST2ACTION := $(GOBIN ) /gotest2action-v0.0.0
57
57
$(GOTEST2ACTION ) : $(BINGO_DIR ) /gotest2action.mod
Original file line number Diff line number Diff line change @@ -2,4 +2,4 @@ module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT
2
2
3
3
go 1.20
4
4
5
- require github.com/goreleaser/goreleaser v0.183.0
5
+ require github.com/goreleaser/goreleaser v1.15.2
Load Diff Large diffs are not rendered by default.
Original file line number Diff line number Diff line change @@ -18,7 +18,7 @@ GOIMPORTS="${GOBIN}/goimports-v0.1.7"
18
18
19
19
GOLANGCI_LINT = " ${ GOBIN } /golangci-lint-v1.51.2"
20
20
21
- GORELEASER = " ${ GOBIN } /goreleaser-v0.183.0 "
21
+ GORELEASER = " ${ GOBIN } /goreleaser-v1.15.2 "
22
22
23
23
GOTEST2ACTION = " ${ GOBIN } /gotest2action-v0.0.0"
24
24
Original file line number Diff line number Diff line change @@ -29,11 +29,15 @@ jobs:
29
29
username : ${{ secrets.DOCKERHUB_USERNAME }}
30
30
password : ${{ secrets.DOCKERHUB_TOKEN }}
31
31
32
+ - name : Set Variables
33
+ run : |
34
+ echo "HOSTNAME=$(hostname)" >> $GITHUB_ENV
35
+
32
36
- name : Run GoReleaser
33
37
uses : goreleaser/goreleaser-action@v2
34
38
with :
35
39
distribution : goreleaser
36
40
version : latest
37
- args : release --rm-dist
41
+ args : release --clean
38
42
env :
39
43
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
Original file line number Diff line number Diff line change @@ -17,6 +17,13 @@ builds:
17
17
- linux
18
18
- windows
19
19
- darwin
20
+ ldflags :
21
+ - -s
22
+ - -w
23
+ - -X github.com/MacroPower/go_template/internal/version.Version={{.Version}}
24
+ - -X github.com/MacroPower/go_template/internal/version.Branch={{.Branch}}
25
+ - -X github.com/MacroPower/go_template/internal/version.BuildUser={{.Env.USER}}@{{.Env.HOSTNAME}}
26
+ - -X github.com/MacroPower/go_template/internal/version.BuildDate={{.Date}}
20
27
21
28
archives :
22
29
- replacements :
Original file line number Diff line number Diff line change @@ -70,6 +70,7 @@ go-bench: $(BENCHSTAT)
70
70
71
71
.PHONY : go-build
72
72
go-build : # # Builds Go executables.
73
+ go-build : HOSTNAME:=$(shell hostname)
73
74
go-build : $(GORELEASER )
74
75
@echo " >> building Go executables"
75
- $( GORELEASER ) build --snapshot --rm-dist
76
+ HOSTNAME= $( HOSTNAME ) $( GORELEASER ) build --snapshot --clean
Original file line number Diff line number Diff line change 6
6
"strings"
7
7
8
8
"github.com/MacroPower/go_template/internal/log"
9
+ "github.com/MacroPower/go_template/internal/version"
9
10
10
11
"github.com/alecthomas/kong"
11
12
)
@@ -39,6 +40,8 @@ func main() {
39
40
40
41
err := log .Info (logger ).Log ("msg" , fmt .Sprintf ("Starting %s" , appName ))
41
42
cliCtx .FatalIfErrorf (err )
43
+ version .LogInfo (logger )
44
+ version .LogBuildContext (logger )
42
45
43
46
sb := strings.Builder {}
44
47
Hello (& sb )
Original file line number Diff line number Diff line change
1
+ package version
2
+
3
+ import (
4
+ "runtime"
5
+ "runtime/debug"
6
+
7
+ "github.com/MacroPower/go_template/internal/log"
8
+
9
+ kitlog "github.com/go-kit/log"
10
+ )
11
+
12
+ var (
13
+ Version string // Set via ldflags.
14
+ Branch string
15
+ BuildUser string
16
+ BuildDate string
17
+
18
+ Revision = getRevision ()
19
+ GoVersion = runtime .Version ()
20
+ GoOS = runtime .GOOS
21
+ GoArch = runtime .GOARCH
22
+ )
23
+
24
+ // LogInfo logs version, branch and revision.
25
+ func LogInfo (logger kitlog.Logger ) {
26
+ if err := log .Info (logger ).Log (
27
+ "msg" , "info" ,
28
+ "version" , Version ,
29
+ "branch" , Branch ,
30
+ "revision" , Revision ,
31
+ ); err != nil {
32
+ panic (err )
33
+ }
34
+ }
35
+
36
+ // LogBuildContext logs goVersion, platform, buildUser and buildDate.
37
+ func LogBuildContext (logger kitlog.Logger ) {
38
+ if err := log .Info (logger ).Log (
39
+ "msg" , "build context" ,
40
+ "go" , GoVersion ,
41
+ "platform" , GoOS + "/" + GoArch ,
42
+ "user" , BuildUser ,
43
+ "date" , BuildDate ,
44
+ ); err != nil {
45
+ panic (err )
46
+ }
47
+ }
48
+
49
+ func getRevision () string {
50
+ rev := "unknown"
51
+
52
+ buildInfo , ok := debug .ReadBuildInfo ()
53
+ if ! ok {
54
+ return rev
55
+ }
56
+
57
+ modified := false
58
+ for _ , v := range buildInfo .Settings {
59
+ switch v .Key {
60
+ case "vcs.revision" :
61
+ rev = v .Value
62
+ case "vcs.modified" :
63
+ if v .Value == "true" {
64
+ modified = true
65
+ }
66
+ }
67
+ }
68
+ if modified {
69
+ return rev + "-dirty"
70
+ }
71
+
72
+ return rev
73
+ }
You can’t perform that action at this time.
0 commit comments