为 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,没问题。只有当托管解决方案提供了所描述的所有方面,或者足够灵活地与流程的其他部分进行交互时,它们才对我有用。
赏金我正在接受一个答案,我觉得它会给我最大的里程。这里有很多优秀的意见,我希望我能接受不止一个答案。谢谢大家!