一、说明CI Server在本质上就是一个定时调度器。我们配置一系列的项目,然后设定一个定时器,让它干一些活,然后通知大家。所以很多公司都使用所谓Home-made的工具,用cron+Ant/Maven来做持续集成,这个就已经可以达到CI的最简单的功能了。常用CI Server软件如下:
CruiseControl (http://cruisecontrol.sourceforge.net/)
Hudson (https://hudson.dev.java.net/)
Jenkins http://jenkins-ci.org/
LuntBuild (http://luntbuild.javaforge.com/)
TeamCity (http://www.jetbrains.com/teamcity/)
AntHill Pro (http://www.anthillpro.com/)
Bamboo (http://www.atlassian.com/software/bamboo/)
QuickBuild (http://www.pmease.com/)
我这里主要自动编辑、自动测试、产生报告、自动通知。因此选择了jenkins,是基于Java开发的一种持续集成工具。
二、安装介质获取
http://jenkins-ci.org/ ,有几种安装格式,比如war包(这种格式通用)、rpm、windows等。根据需要下载,我尝试了几个包,如果你对某个平台比较熟悉,建议直接下载对应平台的安装包,否则下载war包。我使用的是Redhat6.4 下载的rpm包。
三、启动(我尝试的几种包)
有两种启动方法。
首先保证系统中已经安装了jdk,最好是jdk1.5以上。
第一种启动方法,切换到jenkins.war存放的目录,输入如下命令:
$ java -jar jenkins.war
然后在浏览器中(推荐用火狐)输入http://localhost:8080,localhost可以是本机的ip,也可以是计算机名。就可以打开jenkins
第二种方法是用tomcat打开
解压tomcat到某个目录,如/usr/local,进入tomcat下的/bin目录,启动tomcat
将jenkins.war文件放入tomcat下的webapps目录下,启动jenkins时,会自动在webapps目录下建立jenkins目录,所以在地址栏上需要输入的地址于上一种方法有点不一样:
http://localhost:8080/jenkins。
第三种方法使用rpm 安装,这是系统安装redhat的方式组织文件,可以在这里修改端口
/etc/sysconfig/jenkins
iptables -I INPUT -i eth2 -p tcp --dport 8088 -j ACCEPT
/etc/init.d/iptables save
service jenkins start
四、系统配置
1、插件安装代理
主页-->系统管理-->插件管理-->高级 配置好代理服务器,就可以在线安装插件。jenkins多数功能都是通过插件完成的。通过可选列表可以找到所有插件。
2、基本配置
主页-->系统管理-->系统配置,主要修改下面几个内容。修改后这些参数作为全局参数。有些可以在后续的project中覆盖。
执行者数量(并发度)、全局属性(配置全局环境变量)、Maven配置、JDK配置、Ant配置(我没有使用)、Maven(这个选项用来把maven集成到jenkins中)、Maven项目配置(配置maven默认选项)、Jenkins Location(配置jenkins访问地址,我是在配置文件中修改的)、subversion(用来和svn版本管理服务器集成)、邮件通知。
五、项目配置
环境snv+maven+jenkins+jboss+sonar。jenkins负责调度与集成,其它组件负责实现具体功能。下面是调用关系。
1、jenkins调用svn
2、jenkins调用maven(通过maven目标完成)
3、maven调用sonar,需要下把sonar集成到maven中
4、jenkins调用maven,完成编译、打包
5、maven调用junit测试案例,完成功能测试。maven默认已经提供该功能
6、maven调用jboss-as 发布插架,完成发布
7、jenkins调用robotframework,完成前台测试。需要把robotframework集成到jenkins中
8、jenkins调用自身报告插架,声称报告
9、jenkins完成错误通知
第8、9两步还做得不好。进一步研究中。
六、CI指示灯处理方案
这几日闲暇时,我找了几种CI指示灯实现方式
方式
方式一、根据构建结果,灯显示不同颜色;优点是投资少(40元以内)、不需要定制。缺点是灯比较小。
https://wiki.jenkins-ci.org/display/JENKINS/Blink1+Plugin,这个插件能够取得一个usb灯,并且根据构建结果显示为不同颜色(灯购买地址http://item.taobao.com/item.htm?spm=a230r.1.0.0.Gs7ckQ&id=19515986338)
方式二、通过屏幕和tts软件,实现声光告警。大屏幕+音响+jenkins组件,优点是效果比较震撼,缺点是投入比较大,主要是大屏幕投入。
https://wiki.jenkins-ci.org/display/JENKINS/Status+Monitor+Plugin
这个组件把屏幕划分为块,每一块一个project,块的颜色与构建结果有关系。
https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Sounds+plugin
这个组件根据构建结果播放一段声音。当然也可以使用Hudson+Speaks播放一段文本,不过这个需要一些特殊技术将声音播放在ie端。
方式三、通过sametime给构建失败组件负责人发消息。优点比较实用,缺点是不能集中监控。而且受sametime限制。
https://wiki.jenkins-ci.org/display/JENKINS/SameTime+Plugin
因为公司内部通信实验sametime,因此使用了这个组建。
以上三个组件都是在project 的"add post-build action"中配置。先安装插件,然后会出现如下图片中的可选项。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15711267/viewspace-1062783/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15711267/viewspace-1062783/