我们目前使用手动设置和配置脚本以及手动连续集成脚本来构建和部署我们的应用程序.我正在考虑使用专为这些目的而设计的第三方系统来正式化这一点.
我之前看过Phing,我知道它基本上就像Ant.但是,我的Ant体验有点受限,所以对我没有多大帮助.(我所做的大部分Java工作都是作为jar文件部署的).
之前我已经研究过Cruise Control,我知道phpUnderControl是CC的一个插件.但是,Phing说它也适用于CC.所以我不清楚这里的重叠.我是否需要使用Phing和phpUnderControl来使用CruiseControl,还是它们是相互排斥的?
我需要的是能够:
查看SVN的来源
从SQL文件安装数据库
从一系列模板和ini文件生成一些本地配置文件
运行我们所有的单元测试(目前是ST,但很容易转换为PHPUnit)并在任何测试中断时向开发团队发送电子邮件(当然有堆栈跟踪)
为应用程序生成API文档并将其放在某处
运行测试覆盖率报告
现在,我们以这种或那种形式提供所有这些.但是,将它全部自动化并在一个过程中捆绑在一起会很不错.
phing几乎是用PHP编写的,其中phpUnderControl将对PHP项目的支持添加到CruiseControl,并在后端使用phing或ant来解析build.xml文件并运行命令.
我刚刚设置了CruiseControl和phpUnderControl,它一直运行良好.它会检查我的SVN,每当我们办理登机手续时都会通过phpDocumentor,PHP_CodeSniffer和PHPUnit运行它.因为它全部基于build.xml文件,所以你可以通过它运行你想要的任何软件.