jenkins介绍ppt初稿

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

持续集成Continuous integration简介(持续集成是什么)

.持续集成源于极限编程(XP),是一种软件实践,软件开发过程中集成步骤是一个漫长并且无法预测的过程。集成过程中可能会爆发大量的问题,因此集成过程需要尽可能小而多,实际上持续集成讲的是不断的去做软件的集成工作。

持续集成作用(使用持续集成和不适用持续集成的区别)

●场景一、某项目最后做模块集成的时候,发现很多接口都不通,甚至有的模块连安

装包都没有。

●场景二、没有可用的软件包,需要人手动去编译打包最新的代码。

●场景三、搭建测试环境的时候需要手动去解压包然后一系列拷贝修改配置等等。

●场景四、团队成员或者teamleader想了解当前项目的状态,该如何去展示这些信

息。

持续集成就是用来解决以上问题,它的价值主要在于减少重复的步骤,降低项目的风险,任何时间任何地点生成可用的软件,增强项目的可见性等。

持续集成实践(持续集成怎么做)

持续集成,最简单的形式是包括一个监控版本控制系统(SVN等等)变化的工具。当变化被发觉时,这个工具可以自动的编译并测试你的应用。

下面是持续集成中一些良好的实践

●维护一个单一的代码库

●使构建自动化

●使构建自测试

●每人每天都向主线提交代码

●每次提交都应在集成机上进行构建

●快速构建

●使任何人都能轻易获得可执行文件

●人人都能看到正在发生什么

●自动化部署

(上面是持续集成介绍,下面引出jenkins)

jenkins简介

持续集成是一种实践,而jenkins可以帮助团队去尽量好的去完成这种实践

●Jenkins是基于java语言的开源持续集成工具,提供了一套非常易用的用户界面

●jenkins类似于eclipse,基于插件化的架构,方便功能的扩展,目前有几百个现成

插件可以使用,这些插件涵盖从版本控制、构建工具、代码质量、构建通知、集成

外部系统、UI定制、游戏等等各个方面

安装jenkins

jenkins默认提供了三种安装方式

1.最简单的方式是通过java web的启动方式,访问/books/jenkins-the-definitive-guide默认第一次下载jenkins.jnlp即可启动

2.下载可执行的war包启动jenkins

3.部署到tomcat中(推荐)

一个最简单的jenkins应用

在介绍该应用前,先提及两个非常重要的概念

●job

一个完整的构建可能需要很多步骤,每个步骤都称作是一个job。一个job是一个

专一做某事的步骤,比如编译,测试,打包,部署等等。jenkins中默认提供了四

种不同类型的job

●Jenkins家目录

jenkins为每个项目都会建立一个workspace目录,源码会下载到这个目录下,然

后编译等动作都在该目录中进行。下面是一个jenkins的家目录结构

jobs下面按照项目的维度进行划分,每个项目下有builds和workspace目录,其

中源码会保存在各个项目的workspace中,builds目录包含构建的历史记录。

假设项目基于svn控制系统,并且有简单的编译打包脚本。该应用要实现的功能是——检测到代码提交后触发构建动作,调用已有的编译打包脚本生成可用的软件包。

(上面的配置步骤就不列出来了,想讲的话可以大概讲讲也可以截图)

这个最简单的jenkins应用执行的原理是应用svn的插件,当有代码提交的时候被插件检测到,jenkins将源码下载到本地的workspace(包括编译打包脚本),此时jenkins调用本地项目源码中的编译打包脚本(在配置job的时候指定)。这就是最简单的一个流程,复杂的流水线构建都是基于此而完善的。

触发构建的条件

除了上面提到的提交构建,能够触发构建的方式还有以下几种

●隔某段时间构建一次,比如隔一小时自动构建一次。

●定时轮询SCM的改变去触发构建,比如隔一小时去轮询一次svn是否有更改,有

的话触发构建,否则不做处理。

●手动构建

自动化测试

Jenkins不仅仅能做源码编译打包的动作,Jenkins中有很多插件可以方便的实现自动化测试。

●单元测试

●功能测试

●集成测试

●性能测试

●验收测试

进行自动化测试仅仅是一部分功能,关于测试结果的收集和展示jenkins也能够做到,并且是以图形化的方式展示出来。只需要告诉jenkins测试结果在哪里,它会自动去取,并生成可视化的图形。

另外一种关于自动化测试的是代码的覆盖率,jenkins同样支持对代码覆盖率的统计。

上图中的自动化测试给出详细的失败列表

通知

持续集成讲究的是快速的发现问题,尽早的发现问题,因此当出现问题(编译失败,用例通过率不足等)时需要有通知的手段让相关的人员了解情况。Jenkins提供了丰富的通知插件,最常用的是Email通知,当然除此之外还有

●即时通讯软件

●IRC

●桌面通知

代码质量

代码质量的度量同样也非常重要,比如圈复杂度,checkstyle,findbugs等等的静态检查。这些检查都可以使用jenkins的插件完成,jenkins负责收集质量结果,做图形展示,很方便开发人员根据质量结果进行代码重构。

自动化部署

自动化部署目的就是减少不必要的时间。最简单的是自己实现部署的脚本然后供jenkins去调用,但是对于复杂的部署需求,自己实现脚本恐怕有些力不从心,我们可以借

相关文档
最新文档