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

How can I preinstall software on travis-ci?

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

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

如果能够至少预先打包其中的一些要求,那就太好了。 travis 是否支持这样的东西?我如何预先打包其中的一些要求?是否可以构建自定义 travis 基础 VM 并从那里开始构建(可能使用 docker)? Especi默认 Ubuntu precise 存储库的 apt-get 要求以及 pip 要求应该很容易包含。

目前 Travis-CI 不支持这样的功能。目前有一些相关问题尚未解决,例如 custom VMs, running Docker in an OpenVz container - (Spotify seems to have a somewhat working example links in this issue), using Linux Containers (LXC), using KVM.

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

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

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

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

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