Heim > Backend-Entwicklung > Golang > Wie kann ich eine Git-Revision in Go-Binärdateien einbetten, ohne den Quellcode zu ändern?

Wie kann ich eine Git-Revision in Go-Binärdateien einbetten, ohne den Quellcode zu ändern?

DDD
Freigeben: 2024-10-29 11:05:29
Original
387 Leute haben es durchsucht

How to Embed Git Revision in Go Binaries Without Modifying Source Code?

Hinzufügen einer Git-Revision zu Binär-Builds in Go

Ein häufiges Bedürfnis in der Softwareentwicklung besteht darin, den Ursprung binärer ausführbarer Dateien zu verfolgen. Dies ist besonders nützlich für die Fehlerbehebung und die Ermittlung der Quellversion, aus der eine Binärdatei erstellt wurde. In Go mag es intuitiv erscheinen, die Revisionsnummer direkt zum Quellcode hinzuzufügen, aber dieser Ansatz wirft Bedenken hinsichtlich einer Änderung der Quelle auf.

Erwägen Sie stattdessen, die Git-Revision während des Build-Prozesses einzubinden. Dieser Ansatz stellt sicher, dass die Binärdatei die bei ihrer Erstellung verwendete Revision widerspiegelt, ohne den Quellcode zu ändern.

Binärdateien mit Git Revision erstellen

Um dies zu erreichen, verwenden Sie die Git-Rev -parse --short HEAD-Befehl zum Abrufen des gekürzten Revisions-Hashs. Als nächstes weisen Sie diesen Wert einer Variablen namens $VERSION in einem Shell-Skript zu.

Deklarieren Sie in Ihrem Go-Quellcode eine Versionsvariable im Hauptpaket. Diese Variable sollte einen String-Datentyp haben.

Schließlich führen Sie während des Erstellungsprozesses den folgenden Befehl aus, um die Versionsinformationen in die Binärdatei einzubetten:

#!/bin/sh
VERSION=`git rev-parse --short HEAD`
go build -ldflags "-X main.version=$VERSION"  myfile.go
Nach dem Login kopieren

Durch Ausführen des Befehls während des build können Sie die Git-Revision dynamisch in die Binärdatei einbetten, ohne den Quellcode zu ändern. Um auf die Revisionsinformationen zuzugreifen, rufen Sie einfach den Wert der Versionsvariablen in Ihrem Go-Programm ab.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Git-Revision in Go-Binärdateien einbetten, ohne den Quellcode zu ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage