• 1. 产品研发部 何胜超quickBuild 简要说明
  • 2. 构建一个简单项目QuickBuild介绍持续集成介绍你需要做什么?
  • 3. 持续集成说明简单来说, 持续集成是频繁、持续的在多个团队成员的工作中进行集成,并且给予反馈。 主要步骤: 1. 持续集成服务器不断从版本控制服务器上检查代码状态,有最新,则下载最新的代码。 3. 等代码完全更新以后,调用自动化编译脚本,进行代码编译。 4. 运行所有的自动化测试。 5. 进行代码分析。 6. 产生可执行的软件,能够提供给测试人员进行测试。 7.邮件通知相关人员。 作用 尽早发现问题,在最短的时间内解决问题,减少风险和浪费
  • 4. 51346对项目的Test要能产生出详尽的报告,以及收集Test的统计数据以作为项目的分析和考量Continuous Testing处理项目产生的Coverage报告,Code的static analysis报告,并且能收集这些报告的统计数据以作项目的分析和考量Continuous Code Quality Analysis项目的统一管理项目构建情况的通知:Email,bug tracking,IDE集成等等通知Daily Build -> QA Build -> Release Build项目的流程管理CI持续集成的作用2VCS,SVN,gitSCM
  • 5. 流行持续集成工具比较CruiseControl:Martin Fowler提出,开源版本。2010后未再更新,很多内容已经落后。 Hudson:目前使用最多的开源集成环境 TeamCity:来自jetbrains(IDEA),商业版本,有免费版本 Bamboo:来自atlassian(Jira),商业版本 QuickBuild :(开源集成环境)LuntBuild的商业版本,有免费版本 详见:http://www.iteye.com/topic/482658
  • 6. 构建一个简单项目QuickBuild介绍持续集成介绍你需要做什么?
  • 7. QuickBuild简介采用OSGi 架构,基于Equinox实现的持续集成环境 完全采用插件机制,允许自己提供插件,并有详细开发指导文档 提供大量Rest接口,方便与其它系统整合 http://wiki.pmease.com/display/QB50/RESTful+API Community版本功能无阉割,只是限制配置数不超过16个。
  • 8. 用户管理分为用户组与用户,用户都需要填写Email信息。 构建项目与组用户关联,邮件通知组内所有用户。 权限控制到用户组级。 用户可集成到TeamForge,Trac ,JIRA。不支持redMine
  • 9. 项目管理结构Daily Build -> QA Build -> Release Build Daily Build:每日构建 QA Build:测试构建 Release Build:发布版本构建
  • 10. 项目构建(Build)依赖第三方构建工具完成Build任务 支持多种构建工具: Java平台的Maven,Ant。 Net平台的MSBuild,NAnt 支持3种Build触发事件: 1.手动。2.定时(如:每天8:05分开始:0 05 8 * * ?)。3.循环(每隔2小时执行一次) Build步骤:以工作流形式配置,灵活方便 支持分布式Build 一个server带上一群agent,然后把build的任务分布到不同的agent上去执行
  • 11. 代码版本管理工具的支持SVN,CVS ,Git ,VSTF等多种代码管理平台的支持 与构建(build)完美整合、可查看到每一个Build版本的代码变动 可以在有代码变动时才去Build。
  • 12. Report功能和统计通过插件机制支持大量Test和代码的统计和报表功能 与统计出与上一次Build的变化,如:单元测试数量的变化测试,测试覆盖度的变化
  • 13. 第三方工具的集成第三方工具支持不多,仅Jira,Bugzilla,Issue Tracker, Trac , TeamForge, RedMine。 RedMine集成。详见:http://wiki.pmease.com/display/QB50/Integrating+QuickBuild+with+Redmine
  • 14. QuickBuild介绍构建一个简单项目 建一个简单项目持续集成介绍你需要做什么?
  • 15. 开发人员每次SVN代码提交,要写注释。 每天收取日构建版本邮件,及时了解项目日构建情况,更早暴露并解决问题。 关注构建的各种单元测试、代码检查、分析报表。优化代码、提高产品质量。
  • 16. (本页无文本内容)
  • 17. (本页无文本内容)
  • 18. 测试人员日构建环境上获取测试版本(QA Build),不再向研发要测试版本。 在QA Build版本测试基本完成后,发起Release版本。加强发布版本的监控。 在测试时,Bug描述要写上版本号,当一个Bug在多个版本测试中出现,提出警告。 在Release版本写填写备注:版本发布信息。
  • 19. QuickBuild介绍构建一个简单项目持续集成介绍你需要做什么?
  • 20. 如何配置一个简单的项目项目的基本情况: 项目名称:PetStore 基于Maven的代码构建(Java项目) 基于MSBuild的代码构建(.Net项目) 基于SVN的代码版本管理 要求基本的发布版本支持:Day build –– QA build –– release build 可参考停车场所项目配置(小区中心为Java版本,收费终端为.Net版本)
  • 21. 基本环境配置SVN配置 导航栏“Administration”“Plugin Management”页面,找到“Subversion Integration”,点击“Configure”,将SVN的路径填入并保存。 MAVEN配置(Java项目) 导航栏“Administration”“Plugin Management”页面,找到“Apache Maven Integration”,点击“Configure”,将MAVEN路径填入并保存。 MSBuild配置(.NET项目) 导航栏“Administration”“Plugin Management”页面,找到“MSBuild Integration”,点击“Configure”,将MSBuild路径填入并保存。 创建项目 进入“Dashboards”页面,点击“root”“Children”,找到左上角的“+”(加号)添加子项目。 填写项目相关信息。注意: Name项填写:PetStore; 版本编号建议用默认方案:1.1.1; 在填写信息时,“Disable”项单选框要选中。”Schedule”要选择”No Schedule”,其它按默认方案;
  • 22. 配置项目构建环境添加项目源码版本管理信息 项目创建完成后,点击右上角“Setting”“ Repositories”,点击“+”(加号)“ Subversion”。填写名称(PetStore Subversion Repository)和代码SVN托管地址, 配置构建信息 点击右上角“Setting”“ steps”,点击左上角“+”(加号)“ Repository”"Checkout"。填写该步骤(Step)名称(PetStore checkout),且“Repository”项选择“Repositories”中添加的SVN代码仓库(PetStore Subversion Repository) (Java项目)点击右上角“Setting”“ steps”,点击左上角“+”(加号)“build”"Maven"。name填写:PetStore build,goals填写:package (.Net项目)点击右上角“Setting”“ steps”,点击左上角“+”(加号)“build”“MSBuild”。name填写:PetStore build,Project File填写VS项目的工程文件
  • 23. 配置发布版本完善构建项目 在“PetStore”中,点击导航栏“Children”,找到左上角的“+”(加号)添加子项目。 填写项目相关信息。注意: Name项填写: Day Build; 版本编号建议用默认方案:1.1.1; “ Disable ”单选框,不要选择。 “Schedule”要选择“Cron schedule”并输入值:“ 0 0 8 * * ?”。 按照上面步骤完成“ PetStore ” 的子项目“ QA Build ” , “ Release Build ”;
  • 24. 完善环境完善日构建环境 进入“day build”项目,“Setting”“Steps”。将左边配置好的“PetStore checkout”,“PetStore build”拖入右边“Master”下面。如左图。 QA Build,Release Build类似。 版本关联 进入“day build”项目,“Setting”“Promotions”,点击“+”, 填写信息: Name:“提交QA版本”, Configuration:root/PetStore/QA Build , “QA Build”的配置类似 创建完成,可以在“Dashboards”页面,点击“day build ”后面的三角形符号版本编译
  • 25. 谢谢!