goreleaserはGoのプログラムをGitHubのreleasesとかHomebrewとかに簡単にリリースしてくれるプログラム。
goreleaserの設定ファイルでmainパッケージの位置を指定できるけど、指定方法によって挙動が変わる(し、あまりちゃんとドキュメントに書いてない気がする?)ので備忘録的にメモしておく。
たとえば go get github.com/utgwkk/hoge/cmd/hoge
でインストールされるバイナリ*2をリリース対象としたいときを考えると、以下の指定が考えられると思うけど、正しく動くのは1つ(2つ)だけ。
./cmd/hoge/main.go
./cmd/hoge/main.go
単体で動くならこれでも問題ないと思う。
main.goが ./cmd/hoge/
以下のプログラムに依存していてもうまく見てくれないのでファイルを分けているとこれでは動かない。
cmd/hoge
cmd/hoge
モジュールを探しにいくけどおそらく存在しないし、存在したとして違うものが発見されるので間違い。
./cmd/hoge
これが正しい。相対パスでディレクトリを指定する必要がある。
最終的に完成した設定ファイルがこちら。
justify/.goreleaser.yml at 12e1147dc6ea2f5cd27ff42d237f068c927634df · utgwkk/justify · GitHub