持续集成概述
什么是持续集成
随着软件开发复杂度的不断提高,团队开发成员间如何更好的协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近年来
敏捷开发在软件领域越来越火,如何能再不间断变化的需求中快熟适应和保证软件的质量显得尤其的重要.
持续集成正式针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是
通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快的发现集成错误,让团队能更快的开发内聚的软件。
持续集成的核心价值在于:
1、持续集成中的任何一个环节都是自动完成的,无需太多人工干预,有利于减少重复过程以节省时间、费用和工作量;
2、持续集成保障每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署
软件成为可能;
3、持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能够帮助团队进行有效决策,同时
简历团队对开发产品的信心。
持续集成的原则
业界普遍认同的持续集成的原则包括:
1、需要版本控制软件保障团队成员提交的代码不会导致集成失败。常用的版本控制软件有cvs,subversion,git,sourcesafe等;
2、开发人员须及时向版本控制库中提交代码,也需经常性的从版本控制库中更新代码到本地;
3、需要有专门的集成服务器来执行集成构建。根据项目的具体实际,集成构建可以被软件的修改来直接触发,也可以定时启动,
如每半小时构建一次;
4、必须保证构建的成功。如果构建失败,修复构建过程中的错误是优先级最高的工作。一旦修复,需手动启动一次构建。
持续集成系统的组成
由此可见,一个完整的构建系统必须包括:
1、一个自动构建过程,包括自动编译、分发、部署和测试等。
2、一个代码库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。
3、一个持续集成服务器。即将介绍的jenkins就是一个配置简单和使用方便的持续集成服务器。
Jenkins 简介
Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更重要的业务逻辑实现上。同时Jenkins能
实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象的展示项目构建的趋势和稳定性。下面将介绍Jenkins的基本功能。
Jenkins的安装非常简单
服务器环境: Ubuntu 12.04.1 LTS
安装jenkins
1
2
3
4
|
wget -q -O - http:
//pkg
.jenkins-ci.org
/debian/jenkins-ci
.org.key |
sudo
apt-key add -
sudo
sh -c
'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo
apt-get update
sudo
apt-get
install
jenkins
|
启动停止jenkins
1
2
|
sudo
/etc/init
.d
/jenkins
start
sudo
/etc/init
.d
/jenkins
stop
|
Jenkins home: /var/lib/jenkins
log路径/var/log/jenkins/jenkins.log
可以看到Jenkins默认使用的是:8080端口
启动Jenkins后,我们看到一个后台进程在命令行模式下运行。此时在浏览器地址栏中打开 http://serverip:8080 就可以看到Jenkins的页面了
Jenkins的可贵之处在于具有非常搞的可用性,从它的界面中能轻松地完成各种配置,更多的配置和使用信息,可以在Jenkins的官方网站上查询。
Jenkins的主界面是:
Jenkins提供了非常丰富的插件支持,使得Jenkins变得越来越强大。我们可以方便的安装各种第三方插件,从而方便快捷的集成第三方的应用。
比如Jenkins提供了对于IBM Rational ClearCase的插件支持。
此外,Jenkins还提供了强大的的管理和配置功能,包括系统配置、管理插件、查看系统信息、系统日志、节点管理、Jenkins命令行窗口、信息统计等功能。
试试看,你就会发现Jenkins非常好用上手。
基于Jenkins快速搭建持续集成环境
正如前面所述,一个持续集成环境需要包括三个方面的要素:代码库、构建过程和持续集成服务器。对于Jenkins有初步了解后,我们通过一个实例来集中
展示如何快速搭建一个简单的基于Jenkins的持续集成环境。
我们使用Git作为版本控制库,Jenkins默认情况下是没有安装Git的.我们需要到插件管理界面中选中Git,然后点击安装重新启动来激活这个插件。安装成功
后,可以在已安装选项卡上看到以下信息。
接下来,我们开始新建一个Jenkins项目,我们选择 "构建一个自由风格的软件项目"
然后我们可以很方便的配置个JenkinsTest项目了。Jenkins很任性的一点是在每个配置的右侧都有一个帮助的图标,点击图标Jenkins会告诉你
如何配置这个选项。
我的Git代码库地址是:/home/jenkins/api.git
根据开发需要,设置分钟我们需要构建一次。选择 Build periodically,在日程表中填写 * * * * *
第一个参数代表的是分钟 minute,取值 0~59;
第二个参数代表的是小时 hour,取值 0~23;
第三个参数代表的是天 day,取值 1~31;
第四个参数代表的是月 month,取值 1~12;
最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
所以 * * * * * 表示的就是每分钟执行一次构建。
在"增加构建步骤"选择 Execute Shell
选择和配置其他的选项,比如邮件提醒,然后点击 save 保存。
接下来每分钟,jenkinsTest就会构建一次。我们可以在Jenkins中观察构建进度和最终的状态 成功或失败。太阳表示之前的构建没有任何失败,
蓝色的小球表示构建成功。
同时我们可以点击JenkinsTest查看单词构建的Console的输出结果。从中我们可以看到构建的第一步是从git服务器上checkout代码然后调用我们配置的命令
我们可以看没分钟构建的列表。我们模拟一次构建失败的情况,我们把git版本库地址/home/jenkins/api.git的第一个"/"去掉后为:home/jenkins/api.git
再看构建过程会发生什么...
JenkinsTest构建发生了错误.查看详细信息如下:提示找不到版本库
查看一下邮件:
然后我们就可以在 Jenkins 中观察构建的状态了。一旦构建失败我们能看到相应的警示图标,同时,如果配置了邮件提醒,相关人员也会受到邮件。记住我们先前所提醒的那样,
分析和处理构建的失败是优先级最高的工作。接下来,我们还可以加入更多的 Jenkins 项目来实现自动化测试等功能,让持续集成更方便有效地服务于项目开发。
本次分享到此结束,谢谢耐心观看。
本文转自birdinroom 51CTO博客,原文链接:http://blog.51cto.com/birdinroom/1342897,如需转载请自行联系原作者