rj_*_*ijl 14 php jenkins composer-php
我有一个PHP项目,我通过Composer加载包.我还在专用的CI服务器上使用Jenkins运行Continious Integration.每隔一小时,Jenkins就会在我的存储库中查询更改,如果存在,则执行测试运行.
testrun的第一步是使用Phing对存储库进行全新检查,并执行应用程序的构建.构建的一个步骤是执行
composer install
Run Code Online (Sandbox Code Playgroud)
由于Jenkins总是使用全新的签出,因此即使自上次运行以来没有更改任何包,作曲家将始终在每次测试运行时获取所有包.这有几个缺点:
我在考虑将组合器提取的包存储在CI服务器的中心位置,因此Jenkins可以在每次测试运行时访问该位置的包.当然,现在我必须重写部分应用程序来处理供应商文件夹在CI服务器上时位于不同位置的事实.其次,我必须告诉Jenkins跟踪composer.lock文件的变化,看看他是否还需要运行composer.我担心这两件事都不是真的微不足道.
有没有人对其他/更好的方法有任何建议,或者它是在每次测试运行时通过composer获取所有包的最佳选择.最重要的是,它是确保您始终使用正确包装的最佳方式,但它有点浪费带宽,当然在开发的后期阶段,当包装列表几乎不会改变时.
加速它的一种方法是使用composer install --prefer-dist即使对于开发包也只下载拉链.这是唯一构建的首选,因为它会跳过项目的整个历史记录.
至于sparing packagist,不要太担心,与每次提交时在travis上构建的所有开源库相比,每小时一次构建不会产生巨大的差异.
| 归档时间: |
|
| 查看次数: |
9797 次 |
| 最近记录: |