Travis-CI:如何在构建之间缓存作曲家可执行文件?

时间:2015-03-17 13:09:17

标签: php composer-php travis-ci

在每个travis构建中,运行composer self-update。它会在每次构建时更新。是否可以像vendor dir via

那样缓存作曲家可执行文件
cache:
  directories:
    - vendor
    - $HOME/.composer/cache

我考虑过缓存整个/home/travis/.phpenv/versions/5.5/bin/composer,但我觉得这不对,因为此文件夹的内容可能会更改而不通知缓存系统有关更改(例如travis更新php版本时)。

任何建议(当然除了自定义作曲家)?

1 个答案:

答案 0 :(得分:6)

我建议不要更新作曲家本身,但让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:语句确保编写器正确缓存。

如果确实想要缓存作曲家二进制文件:

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

无论如何,比您要求的信息多一点,但我希望这有助于寻找作曲家/特拉维斯/东西的人:)