13

Travis 关于缓存的文档没有特别提到如何缓存从 pipenv 的 Pipfile 安装的 python 依赖项,而不是从 pip 的通常requirements.txt. 无论如何,我尝试为每个文档设置 pip 缓存,但构建时间根本没有改善,而且我看到 pipenv 在每次运行时都安装了它的 deps。

这是我当前使用的语法 - 正确的语法是什么?(或者甚至支持?)

language: python
python:
  - "3.6"

cache: pip

cache:
    directories:
        - proj/static/node_modules
        - $HOME/.cache/pip
4

1 回答 1

5

检查https://pipenv.readthedocs.io/en/latest/advanced/上的文档

您可以使用环境变量 PIPENV_CACHE_DIR 告诉 pipenv 缓存文件的位置,然后将其包含在 cache.directories 数组中。

我在我的 gitlab-ci.yml 配置上执行此操作(语法与 travis-ci 非常相似)。我还缓存了 virtualenv,这大大加快了构建时间。

我的 gitlab-ci.yml 实际上是这样的:

# WORKON_HOME sets where pipenv will place the virtualenv. We do this so that we can capture
#  the environment in the cache for gitlab-ci.
#  PIP_CACHE_DIR tells pip to cache our pip packages in the same path, so that we also
#  cache the downloads.
variables:
  WORKON_HOME: .pipenv/venvs
  PIP_CACHE_DIR: .pipenv/pipcache

# Make sure gitlab-ci knows to always cache the .pipenv path
cache:
  key: pipenv
  paths:
    - .pipenv
于 2019-03-23T05:07:07.827 回答