我大部分时间都是孤独的开发人员,从事许多大型的,主要基于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,没问题。仅当托管解决方案能够提供所描述的所有方面,或者足够灵活以与流程的其他部分进行交互时,托管解决方案才对我而言很有趣。
赏金 我接受我认为会给我最大里程的答案。这里有很多很棒的建议,我希望我可以接受多个答案。感谢大家!