这是TravisCI的一个实验性功能(暂时),能为我们的每一次build创建缓存。例如就前端开发来说,它可以使得:
- 不用每一次build都重新安装npm依赖
- 不用每一次build都重新安装bower依赖
机制
Travis会在每一次build的时候:
- 开始时查看是否已经存在缓存文件;如果有,把它拉下来(从s3服务器)
-
script步骤后,after_success或after_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