在多个构建中保存作曲家依赖关系的最佳方法是什么

时间:2015-10-07 16:46:38

标签: laravel continuous-integration composer-php bamboo

我目前正在使用atlassian bamboo构建服务器(基于云,使用aws)并且有一个初始任务,只需要安装作曲家。

这个单一任务可能需要相当多的时间,当开发人员多次提交给构建服务器4构建所有下载依赖项(这些不是并行的)时,这可能会很痛苦。

我希望加快这个过程,但是能够找到一种方法,将依赖项保存到一个公共位置,以便在多个构建中使用,这仍然允许应用程序按预期运行(laravel)

1 个答案:

答案 0 :(得分:3)

答案

composer.lock

中删除.gitignore

解释

第一次运行compose install时,作曲家必须检查所有依赖项(及其依赖项等)或兼容性。贯穿整个依赖树是非常昂贵的,这就是为什么需要这么长时间。

在找出所有依赖项之后,composer会将其使用的确切版本写入composer.lock文件,以便后续的composer install命令不必花费那么多时间来运行整个图形。

如果您提交了composer.lock文件,它将会出现在您的竹子服务器上。 composer install命令将 waaaayy 更快。

无论如何,提交composer.lock都是最佳做法。引用the docs

  

将您的应用composer.lock(以及composer.json)提交到版本控制中。

     

这很重要,因为install命令会检查锁文件是否存在,如果存在,则会下载其中指定的版本(无论composer.json说什么)。

     

这意味着设置项目的任何人都将下载相同版本的依赖项。您的CI服务器,生产计算机,团队中的其他开发人员,所有人和每个人都运行相同的依赖关系,从而减少了仅影响部署部分的错误的可能性。