🏂
Goツールの超絶お手軽リリース
GoのCLIツールを楽にリリースしたい
自動で
- PRをマージするたびにDraft Releaseのリリースノートに変更内容を追記
- ReleaseをPublishしたらバイナリをReleaseに添付
- brewでもインストールできる場合はそのバージョンも最新に更新
したい!
今回紹介するお手軽リリースフローは自分がメンテしているGoツールでも実際に利用しています。
このツールについては以前にZennでも紹介記事を書いたので、是非そちらも読んでもらえると嬉しいです。
作り方
release-drafterでDraft Releaseを自動作成
- こんな感じ でGitHub Actionsのワークフローを書いておけば、PRをマージしたときに自動でDraft ReleaseのリリースノートにPRのタイトルやAuthorなどを追記してくれます。
- Draft Releaseが無い場合は新規作成もちゃんとしてくれます。
- Semantic versionもいい感じに決めてくれます。
- こんな感じ の設定ファイルも必要です。
goreleaserでバイナリを配布
- こんな感じ でGitHub Actionsのワークフローを書いておけば、release-drafterが作成したDraft ReleaseをPublishしたときに、自動でバイナリをビルドしてReleaseに添付してくれます。
- 別途 こんな感じ で
homebrew-tap
という名前のリポジトリを作成し、brewに関する設定も入れておけば、自動でbrewでインストールできるバージョンも最新にしてくれます。 -
gosimports
で使っている設定ファイルは こんな感じ です。
あとはマージしてPublishするだけ
このように雑にyamlファイルをいくつか用意するだけでGoで書いたCLIツールのバイナリを楽に配布することができます。
ありがたいですね。
Discussion