使用travis的caching(缓存)功能

这是TravisCI的一个实验性功能(暂时),能为我们的每一次build创建缓存。例如就前端开发来说,它可以使得:

  • 不用每一次build都重新安装npm依赖
  • 不用每一次build都重新安装bower依赖

机制

Travis会在每一次build的时候:

  1. 开始时查看是否已经存在缓存文件;如果有,把它拉下来(从s3服务器)
  2. script步骤后,after_successafter_failure之前,把配置里指明要cache的内容打包并上传到S3服务器

注意:

  • 万一上传cached失败,也不会把这次的build标志为failed
  • cache内容保存在s3服务器,所以实际上也还是会下载

例子

Python

下面这个设置会把$HOME/.cache/pip的内容缓存下来

language: python
cache: pip

缓存目录

你可以缓存任意的目录:

cache:
  directories:
  - .autoconf
  - $HOME/.m2

关于路径:

  • 没有以/开始的,就是相对路径,以$TRAVIS_BUILD_DIR为基准
  • /开头的话就是绝对路径
  • 可以使用如$HOME等变量

什么东西没必要缓存

安装快下载慢的文件没必要缓存,例如:

  • Android SDKs
  • Debian包
  • JDK包
  • 编译好的二进制

开启多种缓存

你可以缓存各种组合,如:

cache:
  bundler: true
  directories:
  - node_modules # NPM packages
  - vendor/something
  - .autoconf

你可能感兴趣的:(使用travis的caching(缓存)功能)