无法更改Travis-CI PHP memory_limit

时间:2018-07-14 16:49:34

标签: php yii2 composer-php travis-ci

我在使用php5.6和composer进行测试时遇到了麻烦:构建运行out of memory(也尝试了2G限制,而不是-1,但尝试still fails)。

我遵循了其他示例,并使用Travis' PHP guide禁用了内存限制,但是显然没有达到预期的结果。

最近我添加了the oneliner

echo "memory_limit=2G" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini

但是1.5G之后composer安装仍然失败。

为什么不应用该限制?根据{{​​3}},更改php.ini中的值应该可以。

1 个答案:

答案 0 :(得分:1)

通过越来越仔细地阅读日志(并更好地了解TravisCI),我发现before_script在依赖项安装后正在运行,因此在运行composer时尚未生效。 / p>

我通过增加before_install中的内存限制并在.travis.yml中添加以下内容来解决此问题:

before_install:
  - echo "memory_limit=2G" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini

edit :正如@emix在评论中指出的那样,这不是最好的方法,因为这会增加整个应用程序的内存,这可能会隐藏内存泄漏。

最好的方法是仅在作曲家运行时增加内存,这可以通过以下方式运行作曲家来实现:

COMPOSER_MEMORY_LIMIT=-1 travis_retry composer install --prefer-dist --no-interaction