Goでのクロスコンパイルとバイナリ配布

Goはほとんど使っていなくてメジャーなツールが何なのかよくわかっていない。
自分が使っているツールのリポジトリをいくつか見てみた感じだと、

という感じだったのだけども、一通でやってくれるgoreleaser/goreleaserというのもあるようだったので使ってみた。

一応やったことを書くけれどもREADMEを読むので十分だと思う。

https://github.com/goreleaser/goreleaser/releases から取ってきてパスの通ったところに置く。

$ goreleaser init
$ $EDITOR .goreleaser.yml

.goreleaser.yml は全然いじらないでも自分の場合には十分だった。

ない場合には https://github.com/settings/tokens/newrepo scopeを与えたトークンを作る。

$  export GITHUB_TOKEN=`YOUR_TOKEN`
$ git tag -a v0.1.0 -m "First release" && git push origin v0.1.0
$ goreleaser

簡単で良い。
ただ --skip-publish しててもワーキングツリーが完全にクリーンじゃないとrelease出来ないのが、使い始めの動作確認をしたいときにはちょっとつらかったかな。