GitHub Actionsのキャッシュを一括で消す

表題の通りです。 BuildKitのキャッシュが自動で削除されずどんどん肥大化しています。

https://github.com/docker/build-push-action/issues/252 https://github.com/moby/buildkit/issues/1896

修正方法はIssueにあるのでそちらを参考にしていただくとして今回話すのは肥大化したキャッシュの削除です。

僕の環境ではおよそ2600件のキャッシュがあり、おおよそ50GBを占めていました。制限が10GBなので大幅に超過していると言って良いでしょう。

https://zenn.dev/hankei6km/articles/manage-cache-in-github-actions を見てAPIから消すことができると分かったので今回は一気に消してみたというエントリになります。

方法

  1. Actionsのキャッシュのページに行って何件のキャッシュがあるかを知る
  2. GitHub CLIとcacheを扱いやすくするextensionを導入する
  3. 次のコマンドを実行する。for文の20は1.で件数を参考にして決める。(1回の実行で100件のキャッシュが消せる)
for i in {1..20}
  gh actions-cache list -R <Owner>/<Repository> --limit 100 --sort size --order desc |awk '{print $1}' | grep -v -e Total -e Showing |xargs -I{} gh actions-cache delete -R <Owner>/<Repository> --confirm {}

以上です。

GitHub APIのレートリミットが 5000req/hour1 なのでそれだけには注意して快適なActionsライフを……