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

时间:2015-01-20 12:19:36

标签: docker travis-ci

我们使用travis-ci进行持续集成。我对构建过程耗时太长(约30分钟)这一事实感到不安。我们依赖于几个使用apt-get获取的Ubuntu包,其中包括python-pandas。

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

能够至少预先包装其中一些要求会很好。 travis是否支持这样的事情?我如何预先包装其中一些要求?是否可以构建自定义travis基础VM并从那里开始构建(可能使用docker)?特别是默认的Ubuntu精确存储库的apt-get要求以及点数要求应该很容易包括在内。

2 个答案:

答案 0 :(得分:3)

所以虽然这个问题已经得到解答,但它实际上并没有提供解决方案路径。您可以在travis中使用缓存指令来缓存构建的包,以备将来的travis运行。

cache:
  directories:
    - $HOME/.pip-cache/
    - $HOME/virtualenv/python2.7

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

现在您的包裹内容已保存,供您下次使用travis。您可以类似地将缓慢检索资源存储在其他目录中并缓存它们。

答案 1 :(得分:1)

目前Travis-CI不支持此功能。目前有相关问题,例如custom VMsrunning Docker in an OpenVz container - (Spotify似乎在此问题中有一些有效的example链接),using Linux Containers (LXC),{{3} }。

其中一些人在问题中提到了解决方法,我会尝试一下,直到Travis-CI支持更实质的内容。我还建议联系Travis-CI支持,看看他们是否有任何建议(也许很快就会出现一些可能有帮助的事情)。