Go言語で作成したCLIツールをリリースする1
この記事でわかること
- Go言語で作成したアプリケーションへのversion情報の埋め込み方法
- Go言語で作成したアプリケーションのバイナリをGitHubで配布する方法
1. Go言語で作成したアプリケーションののversion情報の埋め込み方法
Golangでビルド時にバージョン情報を埋め込む(2019.03) - Qiita
build時に以下のようにldfalgs
で埋め込む方法が基本的な方法らしい
go build -ldflags "-X main.version=v1.0.0"
このあとの項目で書きますがgoreleaserの設定ファイル内にこのldflags設定を記述して使うのが通常のようでした
2. Go言語で作成したアプリケーションのバイナリをGitHubで配布する方法
現時点でGo言語で開発したアプリケーションを様々なOS向けに配布するデファクトな方法はGoReleaserというリリース自動化ツールを使用した方法です.
GoReleaserの基本的な使用方法は以下参照.
goreleaser.com
前述したversionの埋め込みは以下のように.goreleaser.ymlのbuild設定に{{.Version}}
を設定します
builds: - main: . binary: diq ldflags: - -X github.com/litencatt/diq/version.Version={{.Version}}
.Versionの仕様
Name Templates - GoReleaser
上記のようにリリース済みのversionからvを除いたものが設定される作りとなっているため
git tag v0.1.1 git push origin v0.1.1
など事前に実行してGitHub上でv0.1.1がリリースされた状態であればgoreleaser実行時に.Version=v0.1.1
が設定されることになる