持续集成&Jenkins

持续集成,Continuous integration ,简称CI。

 

在敏捷开发中,有一个很重要的实践叫做持续集成。而什么是持续集成呢?简单来说,持续集成是频繁、持续的在多个团队成员的工作中进行集成,并且给与反馈。一个典型的持续集成周期包括以下几个步骤:

  1. 持续集成服务器不断从版本控制服务器上检查代码状态,看代码是否有更新。
  2. 如果发现代码有最新的提交,那么就从版本控制服务器下载最新的代码。
  3. 等代码完全更新以后,调用自动化编译脚本,进行代码编译。
  4. 运行所有的自动化测试。
  5. 进行代码分析。
  6. 产生可执行的软件,能够提供给测试人员进行测试。

 

Jenkins介绍

Jenkins,原名Hudson,2011年改为现在的名字,它 是一个开源的实现持续集成的软件工具。官方网站:http://jenkins-ci.org/

Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。

Jenkins特点

  • 易安装:仅仅一个 java -jar jenkins.war,从官网下载该文件后,直接运行,无需额外的安装,更无需安装数据库;
  • 易配置:提供友好的GUI配置界面;
  • 变更支持:Jenkins能从代码仓库(Subversion/CVS)中获取并产生代码更新列表并输出到编译输出信息中;
  • 支持永久链接:用户是通过web来访问Jenkins的,而这些web页面的链接地址都是永久链接地址,因此,你可以在各种文档中直接使用该链接;
  • 集成E-Mail/RSS/IM:当完成一次集成时,可通过这些工具实时告诉你集成结果(据我所知,构建一次集成需要花费一定时间,有了这个功能,你就可以在等待结果过程中,干别的事情);
  • JUnit/TestNG测试报告:也就是用以图表等形式提供详细的测试报表功能;
  • 支持分布式构建:Jenkins可以把集成构建等工作分发到多台计算机中完成;
  • 文件指纹信息:Jenkins会保存哪次集成构建产生了哪些jars文件,哪一次集成构建使用了哪个版本的jars文件等构建记录;
  • 支持第三方插件:使得 Jenkins 变得越来越强大;

jenkins安装和配置

1. 环境准备

首先你的机器上面,需要安装jdk git maven

2. 安装

(1)下载地址

https://jenkins.io/download/, 仅下载wan包,即Generic Java package(.war), 不选择Windows等.

(2)得到war包后, 有两种运行jenkins的方式

将war包放在tomcat的webapp目录下,启动tomcat

命令启动java -jar 下载的war包名.war --httpPort=9004

第二种方式启动后, 会在$user.home/.jenkins目录下构建jenkins的目录.

用浏览器访问http://localhost:9004(tomcat启动, 访问http://localhost:9004/jenkins), 得到以下页面

然后输入密码, 图中的红色部分已经说了密码在哪里.

接下来就到了插件配置页面, 设置成功之后,就跳转到用户密码配置页面, 这个用户名和密码用于以后jenkins登录.

jenkins配置成功后,就可以进入jenkins的主页了!

3. 自动化部署的pipeline

包含三个模块,第一个模块是构建模块, 用来执行单元测试 + build项目形成二进制文件 , 由于我使用的是springboot, 所以得到的是一个jar包. 第二个模块是部署模块, 当第一个模块构建成功, 才会触发第二个模块, 如果第一个模块单元测试或者运行失败, 当前模块就会变红, 那么就不会运行第二个模块, 当然, 这个触发是自己配置的. 第三个模块, 就是线上环境了, 第二个模块运行成功后, 就开始运行第三个模块.

当你push了代码后, 只需要点击上面的Run那个按钮, 你的系统就已经部署到线上了.

首先我们需要给jenkins安装几个插件, 系统管理->插件管理, 安装好插件后, 进入上图的installed, 勾选安装的插件,使其开启.

下面我还需要配置jdk, maven, git 环境.(在全局工具配置里)

一切配置成功后, 最好重启下jenkins使上面的插件和环境生效.

回到首页, 点击new 任务, 先创建一个文件夹, 方便以后多个项目分组方便.  创建完文件夹后, 在首页就会多出一个文件夹. 进入文件夹, 再点击New Item, 然后创建Maven项目.

如果没有maven项目选项, 是缺少Maven Integraion插件.

点击ok后进入配置页面, 这里有几个地方需要配置

(1) 先配置你的源码所在git位置. branch specifier可以选择你代码的分支.

(2) general 中配置, 显示几天的几个版本的以前的构建信息, 方便查看错误日志 .

(3)可以在build triggers中勾选轮询scm, 这里需要配置一个五位数的表达式, 分别代表: 分钟, 小时, 天, 月, 星期几, 这个表达式有点像Spring task中的schedule表达式.

(4)在build中可以配置pom.xm和maven的命令.

clean package

-U该参数能强制让maven检查所有SNAPSHOT依赖更新, 确保集成基于最新的状态, 如果没有该参数, Maven默认以天为单位检查更新, 而持续集成的频率应该比这高很多.

(5)build environment, 勾选delete workspace before build starts, 用于删除以前的项目.

接下来回到文件夹中, 选择new item, 创建一个自由风格的project.

4. jenkins 使用Publish Over SSH插件实现远程自动部署

(1) 系统管理 -> 系统设置 ->拉到最下面的这个窗口.

(2)添加项目构后操作

(3)在exec command中添加要执行的脚本

如果用jenkins启动tomat时报Neither the JAVA_HOME nor the JRE_HOME enviroment variable is defined,

解决方法: 用vim 打开tokmcat的bin目录下的setclasspath.sh, 添加JAVA_HOME和JRE_HOME两个环境变量即可.

 

 

其它集成工具

其它比较著名的持续集成工具有:CruiseControl,TeamCity,Continuum等。

 

最后欢迎大家访问我的个人网站:1024s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值