17

随着 Travis-CI 不断发展和扩展其功能集,它自然会变得越来越好用。我最近阅读了这篇关于“加速构建”的文章。我正在处理的 Django 项目的构建大约需要 25-30 分钟。几乎一半的时间都花在了创建 virtualenv 上,即安装项目的需求。另一半时间用于实际测试运行。

正在努力减少测试的运行时间。然而,我想知道是否可以通过缓存或捆绑项目需求获得更大的加速。至于 Plone,似乎有一些选择,因为它使用了 buildout。我也在看WAD。当然,在缓存需求时,它们需要在需求更新时失效。

有没有人通过减少设置时间为(Django)项目提高了 Travis 的构建速度?

4

3 回答 3

19

更新这现在是 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 以使缓存无效...

另一个选项是使用--download-cachepip 选项,然后将该目录添加到缓存中:

cache:
  directories:
    - $HOME/.pip-cache/

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

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

于 2013-10-19T00:08:19.157 回答
10

多年来,这变得更加容易。最新的方法是:

cache: pip

而已。

于 2016-06-03T21:49:31.920 回答
6

使用点 7:

cache:
  directories:
    - $HOME/.pip-cache/

install:
  - pip install --upgrade pip
  - pip install -r requirements.txt --cache-dir $HOME/.pip-cache
于 2015-05-24T16:11:09.993 回答