はじめに GoでCLIをよく作る身として、 どのように素晴らしいリリースフローを構築するか に心を砕いています。 2019年末にリリースされたGitHub Actionsがすっかり成熟し、GitHub Container Repository(β)もお目見えとなった2020年も暮れを迎えたところで、新たなリリースフロー構築を検討し、一定の結論を得ましたので、少しでもGophersのたすけになることを願って、記事として公開します。 背景 実現したい「リリース」 クロスコンパイルしたバイナリでの配布 Goでツールを作ることで、クロスコンパイルの手軽さによって、様々な環境で、ダウンロードすればすぐに実行できるバイナリでの配布が可能です。 $ curl -O bin.tar.gz https://github.com/kyoh86/gogh/releases/download/v1.7.1/gog
![【2021年版】GitHub × Go製ツールのリリースフロー](https://cdn-ak-scissors.b.st-hatena.com/image/square/c77145f220e94b417c6030ecbe14047085975f28/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--n01AM3vs--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3A%2525E3%252580%2525902021%2525E5%2525B9%2525B4%2525E7%252589%252588%2525E3%252580%252591GitHub%252520%2525C3%252597%252520Go%2525E8%2525A3%2525BD%2525E3%252583%252584%2525E3%252583%2525BC%2525E3%252583%2525AB%2525E3%252581%2525AE%2525E3%252583%2525AA%2525E3%252583%2525AA%2525E3%252583%2525BC%2525E3%252582%2525B9%2525E3%252583%252595%2525E3%252583%2525AD%2525E3%252583%2525BC%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Akyoh86%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2lRUHYwOHdfWFJVcjk5U3BPNUl2Y3o5N3MtanhiWFBaZ3FxcGZxQ1hZPXMyNTAtYw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png)