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



在每个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的人:)

相关内容

  • 没有找到相关文章