Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature]: トピックブランチのcacheをマージ時に自動的に削除したい #34

Closed
Okabe-Junya opened this issue May 21, 2023 · 2 comments · Fixed by #35
Closed
Assignees
Labels
CI enhancement New feature or request

Comments

@Okabe-Junya
Copy link
Owner

Okabe-Junya commented May 21, 2023

Feature description

トピックブランチがマージされたタイミングで,そのブランチで生成されたCIのcacheを自動的に削除するようにする

Motivation

現在いくつかのCIでは,(主に依存関係のインストール周りで)キャッシュを利用している.CIの実行時間を削減できて,すこぶる便利なのだが,これらのキャッシュは(キャッシュ領域の上限オーバー以外では)自動的に消えることはない.

例えばこのリポジトリでのキャッシュのリストのうち,すでにマージされているブランチで生成されたものを見てみると以下のようになっている.

$ gh actions-cache list | cut -f 1-3 | grep merge
setup-ruby-bundler-cache-v6-ubuntu-22.04-x64-ruby-3.2.2-wd-/home/runner/work/sandbox/sandbox/ruby/ci-sample-with--without--Gemfile.lock-f8a436d1855ffdd16a62e35d3570f60c44185bd67dc4e9f163f6febe5e2e4bb5     23.26 MB        refs/pull/33/merge
setup-ruby-bundler-cache-v6-ubuntu-22.04-x64-ruby-3.2.2-wd-/home/runner/work/sandbox/sandbox/ruby/ci-sample-with--without--Gemfile.lock-37a620f16b8b63cba9e6449afd3b160c77813489229a2c277013b6025b4b4d83     23.22 MB        refs/pull/32/merge
setup-ruby-bundler-cache-v6-ubuntu-22.04-x64-ruby-3.0.6-wd-/home/runner/work/sandbox/sandbox/ruby/ci-sample-with--without--Gemfile.lock-3153fcfe393ae315d05c8bd56c33b46bebd5e804fcf2bd5d420a13fb86de0075     26.90 MB        refs/pull/33/merge
setup-ruby-bundler-cache-v6-ubuntu-22.04-x64-ruby-3.0.6-wd-/home/runner/work/sandbox/sandbox/ruby/ci-sample-with--without--Gemfile.lock-cb40c2958d7847f8d9107439784c14162192afdf7208832a41edf0ad8180018b     26.91 MB        refs/pull/28/merge
setup-python-Linux-22.04-Ubuntu-python-3.11.3-pip-8b63e8a0a25f5e573df2a0f820fd06955509f50dfdea349f709cc3d5de2f4dd2      1.53 MB refs/pull/29/merge
macOS-node-ca318d8a9471774afe15836ce3a09ebe648221be1f3d282d4a13323f68f2d2da     4.98 MB refs/pull/27/merge
Linux-node-ca318d8a9471774afe15836ce3a09ebe648221be1f3d282d4a13323f68f2d2da     5.06 MB refs/pull/27/merge

これらが再度使われることはないので無駄であるので,マージされるタイミングで 自動的に削除したい

Additional context

参考になりそう

@Okabe-Junya Okabe-Junya added the enhancement New feature or request label May 21, 2023
@Okabe-Junya Okabe-Junya self-assigned this May 21, 2023
@Okabe-Junya Okabe-Junya added the CI label May 21, 2023
@Okabe-Junya
Copy link
Owner Author

各案の検討をする.

アイディア1

どんなアイディア??

そもそもキャッシュの生成を main(や develop)ブランチでしか行わない.

良いところ

管理が楽.既存のワークフローファイルの発火を on.push.main にするだけで済む.

悪いところ

(devopsの文脈ではあまり推奨されないが)トピックブランチがそれなりに長く生き残る場合,トピックブランチに頻繁に push する場合に有意に実行時間に差が生まれる.

アイディア2

どんなアイディア??

トピックブランチが merge されるタイミングで,当該ブランチで生成された cache を削除する.

良いところ

キャッシュによって受けている恩恵はそのままである.

悪いところ

cache を削除するためのワークフローが必要になり,その運用や保守がだるい.

@Okabe-Junya
Copy link
Owner Author

2でやる

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant