【发布时间】:2011-04-12 11:53:50
【问题描述】:
我大部分时间都是一个孤独的开发人员,从事许多大型项目,主要是基于 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,没问题。只有当托管解决方案提供了所描述的所有方面,或者足够灵活以与流程的其他部分进行交互时,它们才会对我感兴趣。
赏金 我正在接受我觉得会给我最多里程的答案。这里有很多优秀的输入,我希望我能接受多个答案。谢谢大家!
【问题讨论】:
标签: php continuous-integration phing phpundercontrol