随着Travis-CI不断发展和扩展其功能集,它自然会变得更好,更好用。我最近read this article关于“加速构建”。我工作的Django项目的构建需要大约25-30分钟。这段时间的近一半用于创建virtualenv,即安装项目的要求。另一半时间用于实际测试运行。
正在努力减少测试的运行时间。然而,我想知道通过缓存或捆绑项目的要求,更大的加速是否是 up-for-grabs 。至于Plone似乎有some options,因为它使用了buildout。我也在看WAD。当然,在缓存需求时,需要在需求更新时使其失效。
是否有人通过缩短设置时间为(Django)项目提高Travis构建速度?
答案 0 :(得分:19)
更新这是Travis的首要功能:http://blog.travis-ci.com/2013-12-05-speed-up-your-builds-cache-your-dependencies/
我一直在玩这个,看起来你可以像这样缓存virtualenv site-packages(更新你的python版本的路径):
cache:
directories:
- /home/travis/virtualenv/python2.7/lib/python2.7/site-packages
有一个问题是它不会缓存bin
或src
目录。我尝试缓存整个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
这将使下载速度更快,但仍需要编译和安装所有要求!
答案 1 :(得分:9)
这些年来变得更加容易了。最新的方式是:
cache: pip
那就是它。
答案 2 :(得分:6)
点子7:
cache:
directories:
- $HOME/.pip-cache/
install:
- pip install --upgrade pip
- pip install -r requirements.txt --cache-dir $HOME/.pip-cache