goreleaserは、Goプロジェクトをビルドして、各OS向けの実行可能バイナリやDocker Imageを作成し、GithubのReleaseやDocker Repositoryに配布してくれるツールです。この記事ではGithub Actionsを利用して、goreleaserによるビルドから配布までを自動化するまでの手順を示します。
1) goreleaserのインストール
次のURLを参考にgoreleaserをインストールし、goreleaser
コマンドを利用できる環境にします: https://goreleaser.com/install/
個人的には公式のDockerイメージを使うのが一番楽かと思います。
2) .goreleaser.ymlの作成
プロジェクトディレクトリの直下にgoreleaser.yml
を作成します。作成にはgoreleaser init
コマンドを利用します。
cd project-directory
goreleaser init
goreleaserのインストールにDockerを利用した場合は、次のようにしてください。
cd project-directory
docker run --rm --privileged \
-v $PWD:/src \
-w /src \
goreleaser/goreleaser init
3) .goreleaser.ymlの修正
必要な場合は.goreleaser.yml
を修正してください。もっとも作成した初期の状態でも、windows、Linux、OSX向けの実行可能バイナリを作成してくれる状況にはなっています。
4) ワークフローファイルの作成
Github Actionsでgoreleaserを利用する場合は公式のワークフローを利用するのがもっとも便利です。プロジェクトディレクトリ直下に.github/workflows
ディレクトリを作成し、任意の名前の.yml
ファイルを作成します。この.yml
ファイルの中身は以下のURLのREADME.md > Usage > Workflow
をそのままコピペすればよいです: https://github.com/goreleaser/goreleaser-action
5) ワークフローファイルの修正
必要な場合は、ワークフローファイルを修正してください。
6) ワークフローの起動
あとはワークフローファイルに書かれた条件を実現して、Github Actionsを起動するだけです。