Jenkins是什么
Jenkins 是一个可扩展的持续集成引擎。
主要用于:
持续、自动地构建/测试软件项目。
监控一些定时执行的任务。
Jenkins拥有的特性包括:
易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。
易于配置-所有配置都是通过其提供的web界面实现。
集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
生成JUnit/TestNG测试报告。
分布式构建支持Jenkins能够让多台计算机一起构建/测试。
文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。
Jenkins的常用功能
Jenkins其实就是一个工具,这个工具的作用就是调用各种其他的工具来达成你的目的。
1、备份、迁移、恢复jenkins
首先找到JENKINS_HOME,因为Jenkins的所有的数据都是以文件的形式存放在JENKINS_HOME目录中。不管是迁移还是备份,只需要操作JENKINS_HOME就行了。
迁移:建议将JENKINS_HOME打包后在拷贝,windows可以用zip,rar等,Linux有zip,tar等,然后将打包的文件解压到新的JENKINS_HOME目录就行了。
备份:如果是临时备份,整个压缩文件就行了。
恢复:恢复的时候需要先停止jenkins。
2、升级Jenkins
Jenkins的开发迭代非常快,每周发布一个开发版本,长期支持版每半年更新一次(ps:大版本更新)。如此频繁的更新,怎么升级呢?
war:下载新版的war文件,替换旧版本war文件。重启即可。
二进制:卸载旧版本,安装新版本即可。
Jenkins程序下载地址:http://mirrors.jenkins-ci.org/
note:升级前,请测试该版本和你本地数据的兼容性。如何测试:将JENKINS_HOME拷贝一份到新的机器,用新版的程序启动。测试对应的插件和配置。
3、移动,删除或修改jobs
对于移动或删除jobs,只需要简单地移动或删除%JENKINS_HOEM%\jobs目录。
对于修改jobs的名字,只需要简单地修改%JENKINS_HOEM%\jobs下对应job的文件夹的名字。
对于不经常使用的job,只需要对%JENKINS_HOEM%\jobs下对应的jobs的目录zip或tar后存储到其他的地方。
4、Jenkins 启动时的命令行参数
--httpPort=$HTTP_PORT,用来设置jenkins运行时的web端口。
--httpsPort=$HTTP_PORT,表示使用https协议。
--httpListenAddress=$HTTP_HOST,用来指定jenkins监听的ip范围,默认为所有的ip都可以访问此jenkins server。
5、修改jenkins的timezone
如果jenkins所在的server的timezone不同于用户的timezone,这时候需要修改jenkins的timezone,需要在jenkins启动的时候增加下列参数-Dorg.apache.commons.jelly.tags.fmt.timeZone=TZ
6、通过脚本启动jenkins
set JENKINS_HOME=C:\Documents and Settings\Administrator\.hudson
cd /d %JENKINS_HOME%
java -jar jenkins.war --httpPort=8080
保存文件名为startjenkins.bat
7、查看jenkins的系统信息
以在jenkins的管理页面下的系统信息中,查看所有的jenkins的信息,例如jenkins的启动配置,所依赖的系统的环境变量,所安装的plugins。
8、作为windows服务启动
1) 、Jenkins-系统管理,点击“Install as Windows Service”
2)、点击安装
3)、安装完成后,询问是否要停止jenkins用windows服务重新启动,选择yes.
此时,在windows服务中可以看到一个名称为jenkins的服务名。
可以设置启动或停止。
4)、删除windows服务方法
开始——运行——cmd.exe,然后输入sc就可以看到了。使用办法很简单:
sc delete “服务名” (如果服务名中间有空格,就需要前后加引号)
9、Jenkins中执行batch和Python(本人暂时未用到此功能,先记录保留)
Jenkins的job-》build 支持Ant,maven,windows batch和Shell, 但是我们知道python,perl,ruby等脚本其实也是shell脚本,所以这里的Shell可以扩展为python,perl,ruby等。如下图:执行windows batch 和python
10、介绍一些常用的Jenkins插件
插件下载地址:https://wiki.jenkins-ci.org/display/JENKINS/Plugins 或 http://updates.jenkins-ci.org/download/plugins/
perforce的label功能来对成功的build进行label
Dashboard View 用来自定义自己的主页
Deploy Plugin插件支持将War/Jar部署到远程的应用服务器上,例如Tomcat,JBoss,Glassfish。正在寻找或开发.NET web 应用的自动发布插件。
NUnit Plugin
JIRA Plugin
Bugzilla Plugin
Trac Plugin
Readmine Plugin
Static Code Analysis Plug-ins
Publish Over FTP Plugin这个插件可以将构建的产物(例如:Jar)发布到FTP中去。
Publish Over SSH这个插件可以通过ssh连接其他Linux机器
JobConfigHistory Plugin 非常有用,可以查看job历史配置信息sidebar links这个插件不错,可以添加一些链接到jenkins上,比如把fitnesse的测试集链接添加到上面,方便访问。
11、Jenkins的svn插件无法获取到最新的源代码?
A:请检查你的SVN服务器时间和Jenkins服务器时间是否同步。
jenkins的使用总结
jenkins,作为开源世界的持续集成工具(CI),表现其实不错了。虽然不能与Atlassian的bamboo相比,别人是商业版本。
我使用的是它的WAR包版本,可以从jenkins 官网下载。个人建议在tomcat7.0.32版本以上运行。
系统管理
主要是jenkins的管理后台配置,里面有很多功能。如系统设置,全局安全设置,权限管理,插件管理。其实最开始,是要安装相关的插件,如SonarQube Plugin(代码质量),Maven(构建),Subversion Plug-in(版本管理),Publish Over SSH(发布),SSH plugin(执行命令),JUnit Plugin/TestNG Results Plugin(测试用例)。所有的这些插件,都是以插件的形式插入整个项目代码的执行过程。
系统设置
主要是安装好插件之后,设置对应的HOME,以MVN为例
sonarqube
以上只是简单举例说明。实际就是一些明细的参数配置。另外就是像jenkins的JOB配置项数据,邮件通知等。
全局安全设置
主要是针对CI的安全进行设置,如接入LDAP的账号体系。
配置OK之后,登录界面需要使用你的ldap里面的账号进行登录。
新建JOB
基本配置:包括JOB的执行次数,参数化构建等
源码管理:你的代码来源于哪个版本控制管理
构建触发器:定义你的自动化构建方式。一般是定时+版本更新触发。
构建环境:定义构建之中的执行事件或者是脚本
构建:我们是通过MVN来进行的,所以
构建后:一般情况,代码构建成功之后,会跑对应的TESTCASE。如果我们想明确知道通过率是多少,这里可以加上TESTNG的测试报告。
如果你还想看代码的质量,再加另外一个
这样,从代码的编写,构建,测试,发布,评测。jenkins帮助我们很好的串连起来了。
通过上面的图,我们能看出CI所起的作用。
下面再贴一张jenkins生命周期图
团队的小而美,需要的是标准,规范,输出,快速反馈,再迭代。
评论
查看更多