CircleCIのキャッシュについて

先に結論だけ

  • キャッシュは一度書き込むとupdate出来ない
  • キャッシュクリアは名前を変えて対応する

以下具体例

以下のようなキャッシュをした際に
古いバージョンのライブラリが入ってしまった場合

- restore_cache:
  keys:
  - v2-dependencies-{{ checksum "requirements.txt" }}
  - v2-dependencies-

- run:
  name: install dependencies
  command: |
    python3 -m venv venv
    . venv/bin/activate
    pip install -r requirements.txt

- save_cache:
  paths:
    - ./venv
  key: v2-dependencies-{{ checksum "requirements.txt" }}

これを解消しようとして、以下のようにしてもcacheはupdateされない

- restore_cache:
  keys:
  - v2-dependencies-{{ checksum "requirements.txt" }}
  - v2-dependencies-

- run:
  name: install dependencies
  command: |
    python3 -m venv venv
    . venv/bin/activate
    pip install -r requirements.txt
    pip install -U -r requirements.txt

- save_cache:
  paths:
    - ./venv
  key: v2-dependencies-{{ checksum "requirements.txt" }}

またキャッシュは最大30日間保存されてしまうので、手っ取り早くクリアしたいならv2をv3にして対応すべき

公式マニュアル
https://circleci.com/docs/2.0/caching/