• 1. 持续集成工具介绍培训2014.2.17 夏璐
  • 2. 内容提要持续集成工具简介 持续集成工具安装 持续集成工具操作 持续集成工具使用总结
  • 3. 持续集成工具简介
  • 4. 常用持续集成工具常用持续集成工具: CruiseControl; Jenkins(原名Hudson); Apache Continuum
  • 5. 常用持续集成工具比较CruiseControl: CruiseControl是CI Server的老者,诞生已是多年,在许多方面,CruiseControl服务器已经成为持续集成实践的同义词。而现在,CruiseControl已发展成为一个家族式系统,包括CruiseControl.java、CruiseControl.net、CruiseControl.ruby等适应不同语言环境的实现。但可惜的是目前没有专门针对嵌入式C语言的版本。
  • 6. 常用持续集成工具比较Jenkins : Jenkins原名Hudson,是CI Server的后起之秀,目前恐怕是使用最多的一个CI Server了。Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。基于 Web 的界面使得配置项目很容易,同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。
  • 7. 常用持续集成工具比较Apache Continuum: Continuum 是最新的 CI 服务器之一,也是值得关注的一个新进入者。Continuum 的安装和配置很简单:只要下载和释放 ZIP 文件,运行命令行程序,就可以运行了。配置采用Web界面和配置文件相结合。
  • 8. 常用持续集成工具比较Cruise ControlJenkinsContinuum构建工具支持Shell 脚本与命令行,Ant, OpenMake Meister, Maven, Maven2, NAntShell 脚本与命令行, Ant, Groovy,OpenMake Meister,Maven,Maven2 , MSbuild , NAnt ,Rake (Ruby)Ant、Maven、Maven2、Shell 脚本与命令行目标环境Windows 和Linux;任何能运行 Java JVM 的平台Windows 和Linux,能够运行 JVM 和 servlet 容器的系统Linux、Mac OS X、Solaris 和 WindowsSCM支持Subversion,CVS,ClearCase,StarTeam,SourceSafe通过插件可支持所有主流配置管理工具Subversion,CVS,ClearCase,git,SourceSafe扩展性由于历史悠久,目前有丰富的插件可供下载和扩展非常丰富的插件扩展功能,有大量的插件可供下载和安装暂无插件扩展功能易用性部署和维护需要大量使用配置文件,易用性较差安装和部署很方便,配置采用Web界面,简洁明了安装和部署需与Maven配合,配置采用Web界面与配置文件相结合技术支持使用人群和网上资料较多使用人群和网上资料较多使用人群和网上资料少
  • 9. 常用持续集成工具比较 通过以上的对比,就构建工具支持这点来讲,三个工具都支持ant;就易用性这点来讲,jenkins比其他两种工具要方便易用,Cruise Control配置维护繁琐,Continuum自动集成时需要修改build.xml文件进行配置;就技术支持这点来讲,Jenkins是目前使用最广泛的持续集成工具,网上资料较多,遇到问题也便于解决。综上所述,可以发现Jenkins从中脱颖而出,其各方面指标均达到了我们的要求。
  • 10. 持续集成工具安装
  • 11. Jenkins环境搭建Jenkins环境搭建需安装以下工具: Jenkins: Jenkins1.523 Jdk:jdk6.0 ant: apache-ant-1.8.2 tomcat: apache-tomcat-6.0.29 Svn服务端、客户端
  • 12. Jenkins启动 将安装包Jenkins .war直接扔到tomcat的webapps目录下,启动tomcat,Jenkins就安装完毕。
  • 13. 持续集成工具操作
  • 14. Jenkins首页
  • 15. Jenkins管理界面
  • 16. Jenkins系统设置(一) Jdk设置
  • 17. Jenkins系统设置(二)Ant设置
  • 18. Jenkins系统设置(三)远程部署SSH设置
  • 19. Jenkins配置构建(一)创建新job
  • 20. Jenkins配置构建(二)设置参数构建
  • 21. Jenkins配置构建(三)SCM工具配置
  • 22. Jenkins配置构建(四)构建触发器配置
  • 23. Jenkins配置构建(五)Ant配置
  • 24. Jenkins配置构建(六)远程部署配置
  • 25. Jenkins配置构建(七)打标签配置
  • 26. Jenkins执行构建 点击“立即构建”,或者根据构建触发器的设置启动构建。
  • 27. Jenkins构建执行结果
  • 28. Jenkins安全控制新建用户群组及权限设置: Jenkins提供了大量的插件,其中在对用户进行管理配置这块推荐使用“Role-basedAuthorization Strategy”
  • 29. Jenkins安全控制“Role-basedAuthorization Strategy”的启用: 点击“系统管理”点击“系统设置”,如下图所示:“安全域”选择使用Jenkins专有用户数据库,可以在初始化的时候勾选“允许用户注册”,以后为了安全,请关闭该项;“授权策略”选择使用“Role-Based Strategy”。
  • 30. Jenkins安全控制:配置完成save后在“系统管理”下新增选项“Manage and Assign Roles”, 点击“管理用户”新建账户后即可进行账户,群组的安全策略配置。
  • 31. Jenkins安全控制管理组权限设置,构建权限设置 点击“Manage and AssignRoles”,先选择“Manage Roles”如下图所示,在Global roles这里创建权限分组,如admin是最高管理员权限,拥有所有权限,readonly只有读权限等,这里可以根据具体情况设置多个分组,不同权限;然后设置“Project roles”,Role to add 填写分组名称,Pattern填写分组的规则。例如这个分组叫test,他的规则就是构建名为“test.*”的所有构件,然后在“Job”区里勾选相关权限。设置完成点保存即可。见下图。
  • 32. Jenkins安全控制
  • 33. Jenkins安全控制用户权限分配 点击“Assign Roles”如下图所示,在“Global roles”下“User/group to add”栏中输入添加的用户名,然后勾选管理组。记得把默认的匿名用户“Anonymous”的默认admin权限去掉,在添加管理员之后,否则不需登录就能控制整个Jenkins的权限;在“Project roles”下“User/group to add”栏中输入添加的用户名,然后勾选对应构建权限名。设置完保存即可。见下图。
  • 34. Jenkins安全控制
  • 35. 持续集成工具使用总结
  • 36. Jenkins使用总结 经过一段时间的试用,Jenkins无法替代现有的脚本,对于公司现有的自动编译部署流程来讲,Jenkins具有以下局限性: Jenkins打标签是在构建成功后,而自动编译部署流程是先打code标签再构建; Jenkins无法按照指定的svn revision签出代码,签出的是svn上最新的代码; Jenkins远程部署本质上是通过编写的shell脚本实现,若要达到之前自动脚本的效果,需要自行编写脚本并维护,与之前的自动脚本想比较,并没有节省太多脚本的编写量。
  • 37. 答疑解惑时间
  • 38. Thank you !!