如何在travis-ci上预安装软件?

我们使用travis-ci进行持续集成。 我感到困惑的是,我们的构build过程需要很长时间(〜30分钟)。 我们依赖于几个使用apt-get获取的Ubuntu包,其中包括python-pandas。

我们也有一些我们自己的debs,通过HTTPS和dpkg安装。 最后,我们有几个点/ pypi的要求,如Django,Flask,Werkzeug,numpy,pycrypto,selenium。

能够至less预先包装这些要求是很好的。 Travis是否支持这样的事情? 我如何预先包装这些要求? 是否有可能build立一个自定义的Travis基础虚拟机,并从那里开始build设(也许使用docker)? 特别是默认的Ubuntu精确存储库的apt-get要求以及pip要求应该很容易包含。

因此,虽然这个问题已经得到解答,但实际上并没有提供解决schemepath。 您可以使用travis中的caching指令来caching未来travis运行的内置软件包。

cache: directories: - $HOME/.pip-cache/ - $HOME/virtualenv/python2.7 install: - pip install -r requirements.txt --download-cache "$HOME/.pip-cache" 

现在你的包内容被保存为你的下一个特拉维斯版本。 您可以同样将慢速检索资源存储在其他目录中并caching它们。

目前Travis-CI不支持这种function。 目前还有一些相关的问题,比如自定义虚拟机 , 在OpenVz容器中运行Docker (Spotify似乎在这个问题上有一些有用的 示例链接), 使用Linux容器(LXC) , 使用KVM 。

其中一些有问题中提到的解决方法,我会试一试,直到Travis-CI支持更多的东西。 我还build议联系Travis-CI支持,看看他们是否有任何build议(也许有一些东西即将出来,可以帮助)。