在每个travis构建中,都会运行composer self-update
。它在每次构建时都会更新。是否可以像我们通过使用vendor
目录那样缓存composer可执行文件
cache:
directories:
- vendor
- $HOME/.composer/cache
我想过缓存整个/home/travis/.phpenv/versions/5.5/bin/composer
,但我觉得这是不对的,因为这个文件夹的内容可能会在没有通知缓存系统更改的情况下发生更改(例如,当travis更新php版本时)。
有什么建议吗(当然,除了自定义作曲家)?
我建议不要更新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并且需要设置日期时间,请查看https://github.com/travis-ci/travis-ci/issues/2523.我解决这个问题的方法是在我的test
-目录中添加一个带有日期时间的.ini
-文件,并将其设置在所有测试运行程序的正确文件夹中。这是在install:
步骤中准备的:
- mkdir -p /home/travis/.phpenv/versions/$(phpenv version-name)/etc/conf.d
- phpenv config-add test/phpconfig.ini
无论如何,比您要求的信息多一点,但我希望这能帮助寻找composer/travis/stuff的人:)