在TravisCI上缓存pipenv / Pipfile依赖项

时间:2017-12-15 01:26:28

标签: python caching travis-ci requirements.txt pipenv

关于缓存的Travis documentation没有具体提到如何缓存从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

1 个答案:

答案 0 :(得分:0)

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