我有一个描述要缓存的目录的.travis.yml文件,但是当我检查travis中的缓存下拉列表时,它告诉我什么都没有。我只想尝试缓存我的作曲家供应商文件夹。下面是我的.travis.yml文件:
sudo: required
language: php
php:
- 7.0
services:
- docker
before_install:
- docker-compose up -d
install: composer install
cache:
directories:
- root/vendor
script:
- bundle exec rake phpcs
- bundle exec rake phpunit:run
- bundle exec rake ci:behat
这是我的项目结构(或重要的文件夹/文件):
|-- .travis.yml
|-- root
|-- vendor
有关为何会出现这种情况的任何建议吗?
答案 0 :(得分:1)
旧版本的Composer(pre alpha1)使用$HOME/.composer/cache/files
进行缓存,新版本使用$HOME/.cache/composer/files
。
设置其中两个是为了兼容性。
cache:
directories:
- $HOME/.cache/composer/files
- $HOME/.composer/cache/files
Travis CI构建日志将打印出以下内容:
Setting up build cache
$ export CASHER_DIR=$HOME/.casher
$ Installing caching utilities 0.05s
0.00s
attempting to download cache archive 0.47s
fetching master/cache-linux-precise-xxx--xxx-xxx.tgz
found cache
0.00s
adding /home/travis/.cache/composer/files to cache
adding /home/travis/.composer/cache/files to cache 1.28s
答案 1 :(得分:0)
为了缓存与composer
一起安装的依赖项,您需要像这样指定缓存:
cache:
directories:
- $HOME/.composer/cache
它不是缓存的vendor
目录,而是composer
自己的缓存。
但是,您还应该从dist
安装以保持缓存小:
install:
- composer install --prefer-dist
供参考,请参阅http://blog.wyrihaximus.net/2015/07/composer-cache-on-travis/。