随着Travis CI不断发展和扩展其功能集,使用它自然会变得越来越好。我最近谈到“加速建设”。我正在进行的Django项目的构建大约需要25-30分钟。几乎一半的时间用于创建virtualenv,即安装项目的需求。另一半时间用于实际测试运行。
有人努力减少测试的运行时间。然而,我想知道,通过缓存或捆绑项目的需求,是否可以获得更大的速度。至于Plone,似乎在使用buildout时存在read this article。我也在看some options。当然,当缓存需求时,它们需要在需求更新时失效。
是否有人通过缩短安装时间对(Django)项目进行了任何Travis构建速度改进?

最佳答案

更新这是Travis的一流功能:http://blog.travis-ci.com/2013-12-05-speed-up-your-builds-cache-your-dependencies/
我只是在玩这个,看起来您可以像这样缓存virtualenv站点包(更新到您的python版本的路径):

cache:
  directories:
    - /home/travis/virtualenv/python2.7/lib/python2.7/site-packages

有一个小问题是它不缓存binsrc目录。我尝试缓存整个virtualenv目录,但是通过git安装到src目录中的依赖项会出现奇怪的错误。
您仍然面临着使旧需求失效的问题。如果从需求中删除某些内容,它将在virtualenv中保持不变,因此您要么使用pip(pip remove foo)显式删除它,要么等到travis创建API使缓存失效…
另一个选项是对pip使用--download-cache选项,然后将该目录添加到缓存中:
cache:
  directories:
    - $HOME/.pip-cache/

install:
  - pip install -r requirements.txt --download-cache $HOME/.pip-cache

这将使下载速度更快,但它仍然需要编译和安装所有的需求!

关于python - 如何在Travis-CI上缓存Django项目的需求?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19422229/

10-11 20:30