【Go】GitHub Actionsでテストやビルドにキャッシュを効かせる
概要
最近、身内で使うDiscord botを作っています。
そのCIにGitHub Actionsを使っているんですが、CIが走るたびに結構時間がかかるなぁという印象を持っていました(だいたい1分30秒くらい)。 modulesやビルドにキャッシュを使っていないのでそのせいかなと思い、キャッシュを導入することにしました。
キャッシュを効かせる
今回使ったのは actions/cache です。
Goのキャッシュを効かせる方法に関しては、github-actions-golangのREADMEに記載されています。
今回はmodulesとビルドのキャッシュを効かせたいのと、対象のOSはLinuxのみなので以下のstepを追加しました。 dependencyが更新された際にキャッシュが変わるよう、keyにはgo.sumから生成したhashを含めています。
- name: use cache uses: actions/cache@v2 with: path: | # modulesのキャッシュ ~/go/pkg/mod # ビルドキャッシュ(Linux) ~/.cache/go-build key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go-
キャッシュを入れたことで、今まで1分30秒ほどかかっていたCIが56秒で終わるようになりました。
まとめ
これで手っ取り早くCIを早くすることができました。ひとまずテストやビルドで待つ時間が減ったので満足してます。
GitHub Actionsはパブリックリポジトリなら無料で使えるし、使うための設定も特に不要なのでめちゃくちゃいいですね。これからも使っていきます。