Php Travis CI:如何在构建之间缓存composer可执行文件?

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版本时) 有

在每个travis构建中,都会运行编写器自我更新。每次构建都会更新它。是否可以像使用
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/文件