一. 关于持续集成:
持续集成(CI ) [ Continuous Integration ],通俗来讲,就是一个能监控版本控制系统变化的工具,可以自动编译和测试集成的应用程序。出现问题,能够及时的通知相应人员。持续集成是一种思维工具集,想要充分利用好持续集成,必须要先进入持续集成的思维方式中(比如:我们的项目必须有一个可靠的,可重复的,自动化(不涉及人工干预)的构建过程)。持续集成内容如下:
1. 密切监视代码库的健康,代码质量。
2. 降低技术债务和减少维护成本。
3. 清晰发布和展现总体开发工作的当前状态。
4. 自动化部署,发布,测试,简化和加速交付过程。
从一个从无到有的环境中,引入持续集成,大致有以下阶段:
阶段一: 需要开发人员手动集成代码改动,靠开发或运维人员收到触发构建。
阶段二: 简单的脚本构建,没有可靠的或重复性的单元测试,通常放在业务低峰期(夜晚)上线。
阶段三: 代码更新,自动触发构建,将结果邮件等途径发送给相关人员(包括回滚)。
阶段四: 加入度量指标。自动化的代码质量和代码覆盖率检查,评估代码库的质量和测试的相关性及有效性。对测试质量的下降提出报警。
阶段五: 自动化测试验证(接入全面的端到端测试和性能测试)。
阶段六: 自动化验收测试和自动化部署。
阶段七: 持续部署。
持续集成服务器的可信度好坏在很大程度上取决于测试质量,所以我们需要设计强健的,高质量的测试和测试实践。本文中的jenkins就是以"一个健壮的和全面的持续集成解决方案"为目标的服务。
二. 为什么选择Jenkins:
为什么选择采用jenkins来作为我们的持续集成方案工具? :
易用性:简单的部署方式,平滑的学习曲线,直观的用户界面。
扩展性:灵活的扩展,大量的开源插件(覆盖系统版本控制,构建工具,代码质量,构建通知,外部系统集成,界面定制化等)。
高社区活跃度:有规模的,响应的,开放太的讨论社区。
三. Jenkins简介:
jenkins是一个用java编写的开源持续集成工具。可以适用于各种语言和技术环境。jenkins与2004年开发。之前叫Hudson,09年被oracle收购,后开发社区与oracle关系破裂,将hudson的代码迁移为一个新的项目,命名jenkins。
四. 安装部署:
jenkins的部署是相当简单的,支持直接war包启动和以tomcat的容器运行,也支持docker方式。
依赖环境:
java: 1.8.0 (安装略)
jenkins: 2.493
方式一: 直接war包启动
$ wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
$ java -jar jenkins.war --help (查看启动帮助)
$ java -jar jenkins.war (可通过--httpPort=9090指定相应端口,默认8080)
..............
生成一段密码,用于初始化:
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
0d39418e4e9d4bd4b7f4436071052ec3
This may also be found at: /home/xiaoxiang/.jenkins/secrets/initialAdminPassword
.......................................
打开对应的url : http://192.168.2.40:9090
出现以下界面,输入初始化密码:
安装插件。。
安装完成如下:
方法二:通过tomcat 容器启动:
安装tomcat后, 将jenkins.war包放在tomcat程序下webapps中即可。
备份:
备份主目录即可: /home/jenkinsname/.jenkins