На каждом билде, composer self-update
это запустить. И это обновляется при каждой сборке. Можно ли кэшировать исполняемые файлы композитора, как мы это делаем с vendor
через
cache:
directories:
- vendor
- $HOME/.composer/cache
Я думал о кешировании всего /home/travis/.phpenv/versions/5.5/bin/composer
но я чувствую, что это неправильно, потому что содержимое этой папки может измениться без уведомления системы кэширования об изменении (например, когда travis обновляет версию php).
Любые предложения (кроме пользовательского композитора, конечно)?
Я бы порекомендовал не обновлять сам композитор, но пусть Трэвис справится с этим. (автоматически обновляется каждые 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:
Заявление гарантирует, что композитор кэширует правильно.
если ты действительно хочу кешировать двоичный файл композера:
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. Мой способ решения этой проблемы заключается в добавлении .ini
-файл в моем test
-директория с датой и временем, установленная в правильной папке для всех участников тестирования. Это добавлено в install:
-ступенно:
- mkdir -p /home/travis/.phpenv/versions/$(phpenv version-name)/etc/conf.d
- phpenv config-add test/phpconfig.ini
В любом случае, немного больше информации, чем вы просили, но я надеюсь, что это поможет кому-то, кто ищет композитора / travis / stuff 🙂
Других решений пока нет …