仕事でCI全般のお悩み相談されることが多くて .circleci/config.yml や .gitlab-ci.yml をリファクタリングすることがよくあるのですが、その時に一番意識してるキャッシュ戦略について長年自分の中の暗黙知になっていて明文化できてなかったので書きます。 前置き 用語の定義 その他 GitLab CIとCircleCIの両方に共通すること キャッシュを過度に使いすぎない 許容できるケース 11/6追記 ないと困るものはキャッシュにしない 10/30 12:00追記 キャッシュをバージョニングする 複数のブランチでキャッシュを共有できるようにする GitLab CI固有の話 GitLab CIのキャッシュの仕様 CircleCI固有の話 CircleCIのキャッシュの仕様 同一のkeyで一度キャッシュが作られたら上書きができない キャッシュのkeyは前方一致 どうして