Jos*_*ith 36 php workflow continuous-integration hudson selenium-rc
我一直在为PHP项目开发一个实现大多数自动化连续部署周期的工作流程.我想对此工作流程中可能的流程或技术瓶颈,改进建议以及如何更好地自动化和增加团队易用性的想法提供一些反馈.
Hudson CI服务器Git 和 GitHubPHPUnit 单元测试Selenium RCSauce OnDemand 用于自动化,跨浏览器,云测试 Selenium RCPuppet 用于自动化测试服务器部署Gerrit 用于Git代码审查Gerrit Trigger 对于 Hudson编辑:我已经改变了工作流程图形采取ircmaxwell的贡献考虑在内:删除PHPUnit的扩展Selenium RC和运行这些测试仅作为QC阶段的一部分; 增加QC阶段; 在代码审查之后但在合并之前移动UI测试; 在QC阶段之后移动合并; 合并后移动部署.
此工作流程图描述了该过程.我的问题/想法/关注如下.

使用该系统的总体困难.
时间参与.
难以招聘Gerrit.
难以招聘Puppet.
我们稍后将在Amazon EC2实例上进行部署.如果我们要了解如何设置Debian与包Puppet和部署到Linode现在片,有没有对工作部署的潜力Linode来打破EC2?我们应该从一开始就进行构建和部署EC2吗?
另一个问题:EC2和Puppet.我们也在考虑使用Scalr作为解决方案.是否有必要避免Puppet单独开销并投资Scalr?我这里有关于成本的次要问题(ha!); 该Selenium试验不应该运行的是往往是EC2建立实例运行24/7,但对于像五分钟的身材,对于一个小时支付EC2的使用似乎有点多.
合并可能存在的流程瓶颈.
"A"可以被移动吗?
致谢:此工作流程的部分内容受到Digg关于持续部署的精彩帖子的启发.上面的工作流程图灵感来自Android OS项目.
irc*_*ell 10
有多少人正在研究它?如果您只有10或20个开发人员,我不确定将这样精心设计的工作流程放到位.如果你管理500,肯定......
我的个人感觉是KISS.保持简单,愚蠢......你想要一个既有效又更重要的过程:简单.如果它很复杂,要么没有人会做正确的事,要么是在时间部分会滑落之后.如果你把它变得简单,它将成为第二天性,几周后没有人会质疑这个过程(好吧,无论如何它的语义)......
而另一种个人感觉总是运行你所有的UNIT测试.这样,您可以跳过流程图中的整个决策树.毕竟,什么更昂贵,几分钟的CPU时间,或大脑周期来理解部分测试传递和大规模测试失败之间的差异.请记住,失败是失败的,并且没有实际的理由认为代码应该显示给有可能使构建失败的审阅者.
现在,Selenium测试通常非常昂贵,所以我可能会同意将这些测试推迟到审核人批准之后.但是你需要考虑那个......
哦,如果我实施这个,我会在那里放一个正式的QC阶段.我希望人类测试人员能够查看正在进行的任何更改.是的,Selenium可以验证你所知道的事情,但只有人才能找到你没想到的事情.将他们的发现反馈到新的Selenium和Integration测试中,以防止回归...
| 归档时间: |
|
| 查看次数: |
6606 次 |
| 最近记录: |