Php Travis CI:如何在构建之间缓存composer可执行文件?
在每个travis构建中,都会运行编写器自我更新。每次构建都会更新它。是否可以像使用Php Travis CI:如何在构建之间缓存composer可执行文件?,php,composer-php,travis-ci,Php,Composer Php,Travis Ci,在每个travis构建中,都会运行编写器自我更新。每次构建都会更新它。是否可以像使用vendordirvia那样缓存composer可执行文件 cache: directories: - vendor - $HOME/.composer/cache 我曾考虑过缓存整个/home/travis/.phpenv/versions/5.5/bin/composer,但我觉得这是不对的,因为此文件夹的内容可能会在不通知缓存系统更改的情况下更改(例如travis更新php版本时) 有
vendor
dirvia那样缓存composer可执行文件
cache:
directories:
- vendor
- $HOME/.composer/cache
我曾考虑过缓存整个/home/travis/.phpenv/versions/5.5/bin/composer
,但我觉得这是不对的,因为此文件夹的内容可能会在不通知缓存系统更改的情况下更改(例如travis更新php版本时)
有什么建议吗(当然除了自定义composer)?我建议不要更新composer本身,而是让travis来处理。(每30/60天自动更新一次) 我还建议使用新的容器化基础设施来加速运行并允许缓存
language: php
sudo: false
cache:
directories:
- $HOME/.composer/cache
php:
- 5.5
- 5.6
- 7
- hhvm
install:
- composer install
script: vendor/bin/phpunit
sudo:false
语句表示容器的使用。cache:
语句确保composer正确缓存
如果确实要缓存composer二进制文件:
language: php
php:
- 5.5
- 5.6
- 7
- hhvm
cache:
directories:
- $HOME/.composer/cache
install:
- travis_retry composer self-update && composer --version
- export PATH="$HOME/.composer/vendor/bin:$PATH"
- travis_retry composer install --prefer-dist --no-interaction
script: vendor/bin/phpunit
另外,作为提示,如果测试HHVM时需要设置日期时间,请查看。我解决这个问题的方法是在我的test
-目录中添加一个带有日期时间的.ini
-文件,并将其设置在所有测试运行程序的正确文件夹中。这在安装:
-步骤中预先说明:
- mkdir -p /home/travis/.phpenv/versions/$(phpenv version-name)/etc/conf.d
- phpenv config-add test/phpconfig.ini
无论如何,比您要求的信息多了一点,但我希望这对寻找作曲家/travis/stuff的人有所帮助:)我也会感兴趣。通过缓存所有
$HOME/.composer
,似乎只有一半的可能性。您还必须在安装
或安装
之前进行编写器自我更新。注意:旧版本的编写器使用$HOME/.composer/cache
缓存,新版本使用$HOME/.cache/composer/文件
。