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
沒有變動,都會使用快取來加快流程。
留言
張貼留言