我大部分时间都是一名独立的开发人员,从事许多大型项目,主要是基于PHP的项目.我希望专业化和自动化如何处理对代码库的更改,并创建一个持续的集成过程,使向团队工作的过渡成为可能,而无需进行根本性的更改.
我现在做的是,我 for each 项目都有一个本地测试环境;我 for each 项目使用SVN;更改会在本地进行测试,然后通常通过FTP传输到在线版本.API文档是从源代码手动生成的;单元测试是我慢慢开始做的事情,它还不是我日常工作的一部分.
我设想的"构建周期"将实现以下功能:
变更集在本地测试后签入到SVN中.
我开始构建过程.SVN HEAD修订版将被签出,必要时进行修改,并准备好上载.
API文档会自动生成——如果我还没有详细设置它,使用默认模板扫描整个代码库.
新版本通过FTP部署到远程位置(包括一些目录重命名、chmodding、导入数据库等).这是我已经非常喜欢phing美元的东西,但我当然对其他 Select 持开放态度.
运行驻留在预定义位置的单元测试.我通过邮箱、RSS或(最好是)HTML输出得知他们的失败或成功,我可以抓取这些输出并将其放入网页中.
(可选地)使用提交消息的预定义部分来更新预定义位置中的终端用户"ChangeLog"文本文件("现在可以同时为"foo"和"bar"发过滤).该消息不一定与svn提交消息相同,后者可能包含更多的内部信息.
代码度量、代码风格判断等不是我目前的主要关注点,但从长远来看,它们肯定会成为我的主要关注点.我们非常友好地看待能够将这一点付诸实施的解决方案.
我在找
Feedback and experiences个来自现在或曾经处于类似情况的人,并成功地实施了针对此问题的解决方案
特别是关于如何设置的good step-by-step tutorials and walkthroughs
解决方案提供as much automation as possible个,例如 for each 新项目创建一个框架API、测试用例等等.
而且
- Product recommendations.到目前为止,我所知道的是phing/ant用于建筑,phpUnderControl或Hudson用于报告部分.就我所能看到的而言,我都喜欢它们,但我对它们当然没有详细的经验.
我有swamped岁的工作经验,所以我很喜欢简单的解决方案.另一方面,如果一个特性丢失了,我会抱怨它太有限了.:)点击式解决方案也是受欢迎的.我也是商业产品的推荐,可以与PHP项目一起工作.
My setup
I am working on Windows locally (7, to be exact) and most client projects are run on a LAMP stack, often on shared hosting (= no remote SSH). 我在找 solutions that I can run in my own environment. I am ready to set up a Linux VM for this, no problem. Hosted solutions are interesting for me only if they provide all of the aspects described, or are flexible enough to interact with the other parts of the process.
Bounty