我尝试使用此actions/cache@v2
来缓存诗歌venv。仅安装了两个库pylint
和pytest
。似乎安装已被缓存(缓存大小〜26MB)。但是,缓存命中后就无法检索它们。
在运行时找不到缓存安装的库
诗歌排行榜
Package Version
---------- -------
pip 20.1.1
setuptools 41.2.0
https://github.com/northtree/poetry-github-actions/runs/875926237?check_suite_focus=true#step:9:1
YAML为here。
我能否知道如何使用actions/cache@v2
来缓存诗歌安装/ virturalenv,以避免重新安装依赖项。
答案 0 :(得分:3)
在YAML文件中,您正在使用dschep/install-poetry-action@v1.3
安装Poetry,该诗设置了poetry config virtualenvs.create false
,这意味着将使用当前的python解释器/ virtualenv。因为您在任何地方都没有使用virtualenv激活诗歌,而只是使用系统python,并且~/.poetry
目录内没有virtualenv。
如果您设置poetry config virtualenvs.create true
,它应该可以工作,例如:
- name: Install poetry
uses: dschep/install-poetry-action@v1.3
- name: Configure poetry
run: |
poetry config virtualenvs.create true
poetry config virtualenvs.in-project false
poetry config cache-dir ~/.poetry
poetry config virtualenvs.path ~/.poetry/venv
注意:根据dschep/install-poetry-action
的文档,有一个选项可以在安装过程中设置poetry config virtualenvs.create true
,但目前似乎已损坏(请参阅https://github.com/dschep/install-poetry-action/issues/11)。无论如何,我个人都喜欢在与其他所有内容相同的配置块中进行操作。
答案 1 :(得分:1)
@northtree的答案是正确的,但是对于任何浏览的人,您应该知道不再保留引用的操作。
对于使用版本> = 1.1.0的诗歌安装,我建议使用此代码片段来缓存您的诗歌依存关系:
...
- name: Install poetry
uses: snok/install-poetry@v1.0.0
with:
virtualenvs-create: true
virtualenvs-in-project: true
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v2
with:
path: .venv
key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Install dependencies
run: poetry install
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
...
更完整的示例记录在here:)
中