Github 在 2022/10/20 發布一項更新,可以在 web 介面下管理 Actions Workflows 的 caches。
不過在此之前,還沒將 actions cache 加到目前使用的專案中,趁這次調整使用看看。手邊有一個以 Python 為主要語言開發、Poetry 為套件管理的專案,預期可以將「相對穩定」的套件 cache 起來。
基本的會使用到的 actions:
另外有兩種方式可以支援 cache 的使用
actions/setup-python
在 actions/setup-python 有兩個參數可以開啟使用,cache、cache-dependency-path。cache 可以為 pipenv、pip、poetry。cache-dependency-path 則是指定套件安裝檔的位置:
- pipenv:
Pipfile.lock - pip:
requirements.txt - poetry:
poetry.lock
詳細的設定檔範例可以參考文件,雖然 actions/setup-python 提供一個非常簡易的設定,但如果想要更多自訂的快取設定,可以試試原生的 actions/cache
actions/cache
actions/cache 是最原生的功能,可以透過 path、key 來指定快取的位置。以 Poetry 為例,在 Poetry 相關的預設路徑下,可以針對 ~/.local, ~/.cache 來建立快取。
如果你習慣將環境資料夾裝在專案底下(virtualenvs.in-project=true)也可以將 ./.venv 也建立快取位置。
而 key 的命名可以使用 hashFiles 來比對 poetry.lock 檔案差異值來建立。
所以依這樣這樣的規則,我們可以有三個快取建立:
poetry-venv-${{ hashFiles('\*\*/poetry.lock') }}poetry-local-${{ hashFiles('\*\*/poetry.lock') }}poetry-cache-${{ hashFiles('\*\*/poetry.lock') }}
接下來只要 poetry.lock 沒有變動,都會使用快取來加快流程。
沒有留言:
張貼留言