这是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