使用作曲家,我想有一个自定义的要求部分来与ci服务器一起使用。
像这样:
{
"require": {
...
},
"require-dev": {
...
},
"require-ci": {
...
},
}
这可能吗?在作曲家文档中,我只能找到使用 require 和 require-dev 的引用
Composer 只有两种依赖关系:运行软件所需的内容和开发软件所需的内容。
除非你在 Composer 中实现另一个类别,否则你将不得不接受你得到的东西。
该 require-ci 类别应包含哪种软件?如果是在 CI 中运行测试的软件,请使用 require-dev(即使您的本地开发人员不需要它)。或者使这些组件成为您使用的现成 CI 服务器的一部分。如果您考虑 Travis CI,则配置 VM 的脚本应该安装不属于软件的任何内容,因此,如果您想运行 composer install --ci
来获取 Travis CI 上所需的所有内容,您可能会使用不同的方法,例如脚本中的composer create-project that/ci-tool
。
这不是一个好的模式,因为您正在有效地沙盒化 CI 的配置,并且会破坏持续集成的全部要点。
如果要使集成和验收测试结果可靠,CI 作业上的工作区和测试图面应尽可能与生产环境匹配。