7
Ich verwende Git-Tags, um Versionen in meine Go-Programme, z. in ein Makefile
:Dynamische Version von Git mit go get
VERSION = $(shell git describe --always --dirty)
github_pki: main.go
CGO_ENABLED=0 GOOS=linux \
go build -a \
-ldflags="-X main.version=$(VERSION)" \
-installsuffix cgo -o [email protected] $<
Wo version
in main.go
wie folgt definiert ist:
var version = "undefined"
make
Dies funktioniert gut mit, aber nicht, wenn go get
oder go build
verwenden. Gibt es eine Möglichkeit, diese ldflags
ohne Verwendung eines externen Build-System (d. H. Mit go build
/go get
) arbeiten zu lassen?
Nicht gemäß der Dokumentation. Sie können jedoch das Attribut [ident git] (https://git-scm.com/docs/gitattributes#__code_ident_code) verwenden, um zumindest den Git-Hash einer Datei in die Datei einzufügen. –