ホームページ >バックエンド開発 >Golang >ソースコードを変更せずにGitリビジョンをGoバイナリに埋め込む方法?

ソースコードを変更せずにGitリビジョンをGoバイナリに埋め込む方法?

DDD
DDDオリジナル
2024-10-29 11:05:29388ブラウズ

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

Go のバイナリ ビルドに Git リビジョンを追加する

ソフトウェア開発における一般的なニーズは、バイナリ実行可能ファイルの起源を追跡することです。これは、トラブルシューティングやバイナリのビルド元のソース バージョンの確認に特に役立ちます。 Go では、リビジョン番号をソース コードに直接追加するのが直感的に思えるかもしれませんが、このアプローチではソースの変更に関する懸念が生じます。

代わりに、ビルド プロセス中に git リビジョンを組み込むことを検討してください。このアプローチにより、ソース コードを変更することなく、作成時に使用されたリビジョンがバイナリに反映されます。

Git リビジョンを使用したバイナリの構築

これを実現するには、git rev を利用します。 -parse --short HEAD コマンドで、短縮されたリビジョン ハッシュを取得します。次に、この値をシェル スクリプト内の $VERSION という名前の変数に割り当てます。

Go ソース コード内で、メイン パッケージ内のバージョン変数を宣言します。この変数のデータ型は文字列である必要があります。

最後に、ビルド プロセス中に次のコマンドを実行して、バージョン情報をバイナリに埋め込みます。

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

実行中にコマンドを実行します。ビルドすると、ソース コードを変更せずに、git リビジョンをバイナリに動的に埋め込むことができます。リビジョン情報にアクセスするには、Go プログラムの version 変数の値を取得するだけです。

以上がソースコードを変更せずにGitリビジョンをGoバイナリに埋め込む方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。