为PHP项目设置部署/构建/ CI周期
我大部分时间都是单独的开发人员,从事一些大型的,主要是基于PHP的项目。我希望专业化和自动化如何处理代码库的更改,并创建一个持续集成过程,使过渡在团队中工作,而不必进行根本性的更改。
我现在正在做的是,我为每个项目都有一个本地测试环境; 我为每个项目使用SVN; 更改在本地进行测试,然后通常通过FTP传输到联机版本。API文档是从源代码手动生成的; 单元测试是我慢慢进入的,它还不是我日常工作的一部分。
我想象的“构建周期”将执行以下操作:
在本地测试后,变更集将被检入SVN。
我开始构建过程。SVN HEAD修订版将被检出,必要时进行修改,并准备上传。
API文档会自动生成 - 如果我还没有详细设置,使用默认模板,扫描整个代码库。
新修订通过FTP部署到远程位置(包括一些目录重命名,chmodding,导入数据库,和喜欢。)这是我已经喜欢phing非常多,但我很开放的,当然选择。
运行驻留在预定义位置的单元测试。我被告知他们使用电子邮件,RSS或(最好)HTML输出的失败或成功,我可以抓取并放入网页。
(可选)预定义位置的最终用户“changelog”文本文件使用提交消息的预定义部分进行更新(“现在可以同时过滤”foo“和”bar“此消息不一定与SVN提交消息相同,后者可能包含更多内部信息。
像代码指标,代码样式检查等等东西现在不是我的主要关注点,但从长远来看,它们肯定会。带来这种开箱即用的解决方案非常受到关注。
我在寻找
来自或处于类似情况的人的反馈和经验,并已成功实施此解决方案
特别是,关于如何设置它的好的分步教程和演练
提供尽可能多的自动化的解决方案,例如为每个新项目创建框架API,测试用例等。
并且
产品推荐。到目前为止,我所知道的是用于构建的phing / ant,以及用于报告部分的phpUnderControl或Hudson。我尽可能地喜欢它们,但我当然没有详细的经验。
我忙于工作,所以我倾向于简单的解决方案。另一方面,如果缺少一个功能,我会因为它太有限而哭泣。:)欢迎使用点击式解决方案。我也是可以使用PHP项目的商业产品推荐。
我的设置
我在本地工作Windows(确切地说是7),大多数客户端项目都在LAMP堆栈上运行,通常在共享主机上运行(=没有远程SSH)。我正在寻找可以在我自己的环境中运行的解决方案。我准备为此设置一个Linux VM,没问题。托管解决方案对我来说很有意思,只要它们提供了所描述的所有方面,或者足够灵活,可以与流程的其他部分进行交互。
赏金 我接受了我觉得会给我最多里程的答案。这里有很多很棒的输入,我希望我能接受不止一个答案。感谢大家!