travis+composer 在加载 Symfony 2.8.3 时反复失败


  • 安装 symfony/symfony (v2.8.3) 下载:85%PHP 致命错误:第 174 行的 phar:///home/travis/.phpenv/versions/5.4.37/bin/composer/src/Composer/Util/RemoteFilesystem.php 中允许的 1073741824 字节的内存大小耗尽(尝试分配 6553600 字节) 致命错误:第 174 行的 phar:///home/travis/.phpenv/versions/5.4.37/bin/composer/src/Composer/Util/RemoteFilesystem.php 中允许的 1073741824 字节的内存大小耗尽(尝试分配 6553600 字节)

自从我们从Symfony 2.8.2 -> 2.8.3更新以来,我的项目的几乎每个构建都失败了,并且出现了此错误(内存不足)。如果我强制重建的次数足够多,它最终会通过,所以这显然不是项目的问题,而是特拉维斯或作曲家或组合(或Symfony,我想)的问题。它仅在尝试加载Symfony时失败。似乎这个问题会很普遍,但我在 SO 或 GH 上找不到任何问题。

有人对如何纠正问题有任何建议吗?

来自失败构建的日志

作曲家.json 文件

.

travis.yml 文件

而不是composer update 您应该在 CI 服务器上调用 composer install -o(使用优化的自动加载器)。

运行作曲家安装将:

  • 检查 composer.lock 文件是否存在
  • 如果没有,请执行作曲家更新以创建作曲家.lock
  • 如果 composer.lock 存在,请从锁定文件中安装指定的版本

运行作曲家更新将:

  • 检查作曲家.json
  • 根据您的版本规格确定要安装的最新版本 - 耗时和内存消耗的任务
  • 安装最新版本
  • 更新 composer.lock 以反映已安装的最新版本

使用文件中的依赖项版本composer.lock让您确信您的测试是在与开发完全相同的依赖项上执行的。即使在您的composer.json您使用dev-master版本。

如果出于某些原因您想在 travis 上运行composer update,那么在 composer 安装之前禁用xdebug(如果您的测试需要,请在之后启用它)可以提高composer性能。 默认情况下,xdebug在 travis 上处于启用状态。

运行 Composer 控制台命令,而 php 扩展名 "xdebug" 是 加载会大大降低速度。甚至当所有 "xDebug"相关功能按 php.ini 标志被禁用,但 php 扩展本身被加载到 PHP 引擎中。与 CLI 相比 使用"xDebug"运行命令使速度提高了几倍 最多 3 个并不少见。

https://getcomposer.org/doc/articles/troubleshooting.md#xdebug-impact-on-composer

我遇到了同样的问题,我使用的解决方法是在before_install中添加以下内容:

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

来自特拉维斯的这个问题。在免费计划中,travis提供3GB内存和最多2个内核可用

相关内容

  • 没有找到相关文章

最新更新