Goはほとんど使っていなくてメジャーなツールが何なのかよくわかっていない。
自分が使っているツールのリポジトリをいくつか見てみた感じだと、
- クロスコンパイルはmitchellh/goxもしくはMakefile
- Github Releaseへのアップロードはtcnksm/ghr: Upload multiple artifacts to GitHub Release in parallelもしくはMakefile
という感じだったのだけども、一通でやってくれるgoreleaser/goreleaserというのもあるようだったので使ってみた。
一応やったことを書くけれどもREADMEを読むので十分だと思う。
https://github.com/goreleaser/goreleaser/releases から取ってきてパスの通ったところに置く。
$ goreleaser init
$ $EDITOR .goreleaser.yml
.goreleaser.yml
は全然いじらないでも自分の場合には十分だった。
ない場合には https://github.com/settings/tokens/new で repo
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出来ないのが、使い始めの動作確認をしたいときにはちょっとつらかったかな。