标签:style blog http color java os 使用 io 文件
文章目录结构如下:
1> Jenkins与Git相关介绍
2> Jenkins部署安装
3> Gitblit部署安装
4> Jenkins与Git集成使用
5> 项目集成开发实例
6> 总结
一、Jenkins与Git相关介绍
Jenkins是现在非常流行的持续集成(Continuous Integration)CI服务器,它的前身是Hudson。Jenkins易于安装,不需要数据库的支持,直接通过Web界面进行配置,而且集成了RSS/Email的通知机制,支持分布式构建,具有丰富的插件,这些都是Jenkins相比其它持续集成服务器的优势所在。
Git在Wikipedia上的定义是,它是一个免费的、分布式的版本控制工具,或者是一个强调了速度快的源代码管理工具。Git最初被Linux Torvalds开发出来用于管理Linux内核的开发。每一个Git的工作目录都是一个完全独立的代码库,并拥有完整的历史记录和版本追踪能力,不依赖于网络和中心服务器。Git的出现减轻了许多开发者和开源项目对于管理分支代码的压力,由于对分支的良好控制,更鼓励开发者对自己感兴趣的项目作出贡献。其实许多开源项目包括:Linux kernel,Samba,X.org Server, Ruby on Rails,都已经过渡到使用Git作为自己的版本控制工具。
Jenkins持续集成的主要流程就是Jenkins会在后台进行,轮询版本控制的存储库,当发现版本库出现变更,就会通过预定义的构建脚本进行项目的构建,Jenkins会根据项目需求将构建的任务分配到Slave端。一般的项目构建过程主要分为自动化编译和自动化测试两个阶段,这同样是你脚本发挥作用的阶段。
二、Jenkins部署安装
本文档Jenkins安装配置环境:Centos 6.3。Jenkins是一款基于Java开发的开源的、当前最广泛流行的持续集成工具。丰富的插件可以让它的使用更加简单,它几乎支持所有的版本控制系统。你可以通过各种方式来配置构建过程,例如:在版本控制系统中出发一次提交,通过一个定时的脚本来调度,一个指定的编译过程完成之后开发构建等等。
1> 安装Java:yum install java-1.6.0-openjdk;安装完成后通过java -version来检查是否安装成功。
2> 将Jenkins的repo资源库加入本机。
3> 安装Jenkins
rm -rf jenkins.repo
mv jenkins.repo.1 jenkins.repo
yum intall jenkins
4> 设置Jenkins开机自启动
chkconfig jenkins on
5> 启动Jenkins
service jenkins start
6> 通过web访问Jenkins
默认情况下,Jenkins会在8080端口启动,可以通过:netstat -anop | grep 8080 来查看,访问:http://192.168.85.128:8080/访问, 注意此时要关闭防火墙。
7> 配置用户安全访问
现在,我们来配置Jenkins的安全认证。默认情况下Jenkins“允许任何人做任何事情”,这里我们将采用基于矩阵的安全认证,其实就是权限列表。
点击“Configure Global Security”-> “Jenkins专有用户数据库”-> “允许用户注册”,点击保存。保存后,在右上角就出现了注册的按钮。
点击注册,填写相应的信息后,点击保存。
现在,我们将限制用户注册,采用“基于安全矩阵的授权策略”。
将Jenkins专有用户数据库下的“允许用户注册”勾掉,在授权策略中选择“安全矩阵”,在添加用户/组中,填写刚才注册的账号,并为他选择所有的权限列表。
现在,刚刚添加的houqd2012用户在登陆后就可以管理Jenkins了。其它,注册的用户,可以利用houqd2012在账号管理中分配不同的权限。
添加用户:“系统管理”-> “管理用户”-> “新建用户”
赋予权限:houqd2012管理员账号登陆,在“Configure Global Security”中分配权限:为user01分配很小的权限,这样就可以对账号,以及各自拥有的权限进行统一的配置了。
三、Gitblit安装部署
Git是现在很流行的分布式版本控制工具,github更是人尽皆知。但是,github要求更够访问互联网,我们可以在Github上申请一个免费的账号,然后将代码上传到这上面。但是,这是公共的平台,其它所有人均可以自由下载代码,这对于公司内部使用来说,不太安全。还好开源软件给我们提供了很多选择,比如:Gitblit、GitStack、Gitolite等。Gitblit是一个纯java库,用来管理、查看和处理Git资料库,相当于Git的java管理工具。这里我采用的是Gitblit GO版本,下载地址:http://www.gitblit.com/
1> 安装java
yum install java-1.6.0-openjdk
2> 安装gitblit
gitblit默认安装目录为/opt/giblit,先创建/opt/giblit目录
tar -zxvf gitblit-1.6.0.tar.gz -C /opt/giblit
gitblit在centos下安装的实际执行文件为:service-centos.sh
安装脚本install-service-centos.sh的内容为:
其实,它就是将service-centos.sh拷贝到启动目录下,并设为开机自启动。
修改http端口:
执行安装 ./install-service-centos.sh
3> 启动gitblit服务
service gitblit start
访问:http://192.168.85.169:8443/
默认账号和密码为:admin/admin
admin登陆后修改密码。
创建用户,并创建第一个版本库:
本地创建HelloWorld项目,并将代码提交到版本库。
新建一个helloworld.c文件,仅输出一句HelloWorld,并提交版本库。
现在在Gitblit的web端即可以看到版本库的提交记录。
这里显示的时间是8小时前,是因为我本机的时间与安装gitblit的服务器的时间不一致。
四、Jenkins与Git集成使用
Jenkins可以基本上可以与任何的版本控制系统继承,这主要依赖于它丰富多样的插件,这里我们利用它与Git版本控制系统集成。
“系统管理”-> “管理插件”-> 在可选插件中选择一下这三个插件,然后点击安装,它同时会将依赖的其它插件包都下载下来,这种方式通常很慢,还可以我们自己将插件包下载下来,放在Jenkins安装目录下的plugins目录下,插件就可以直接安装了,下载地址 : https://updates.jenkins-ci.org/download/plugins/
需要下载的包有:
上传到/var/lib/jenkins/plugins目录,重启jenkins: service jenkins restart,再次查看已安装插件中,已经存在上面的那三个插件。
五、项目集成开发实例
最后,我们利用Jenkins来自动构建HelloWorld的项目,主要完成,编译、打包的过程。
1> 创建构建任务
2> 配置项目
在源码管理中选择Git,然后填写相关信息:
这里在填写Repository URL的时候,有可能会出现以下的错误:
这是因为Git的版本太低了,默认的Centos6安装的Git版本是1.7.1,问题解决链接:
http://serverfault.com/questions/589386/unknown-option-git-config-local-reported-by-jenkins
解决办法:升级Git版本,解决链接:http://itekblog.com/update-git-centos/
1) 下载rpm包
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.e16.rf.x86_64.rpm
2) 安装rpm包
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -i rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
3) 修改repo文件
yum clean all
vim /etc/yum.repos.d/rpmforge.repo
将[rpmforge-extras]中的 enabled = 0 修改为 enabled = 1
4) 更新Git
yum update git
git --version ===> 当前git版本更新为:1.7.12.4
3> 保存更改,测试构建
点击立即构建:
可以查看构建过程:
在jenkins安装目录下的jobs文件夹下存在我们的构建项目HelloWorldBuild,在它下的workspace下即为版本库中的代码:
4> 添加脚本,进行自动编译
再次执行构建,查看控制台输出,可以看到我们的脚本在最后被执行:
六、总结
以上介绍了Jenkins的安装配置,以及它与Git配合应该如何使用,这里还有很多的一些特定没有介绍,包括:email提醒功能、多项目构建等。其最大的魅力在于脚本的编写,根据不同的脚本,可以执行的任务要多的多。例如:制作安装包,最终直接打包成最终的安装包等,就完全通过脚本来完成。
周末一下午的工作,加油!!
【大话QT之十七】Jenkins介绍及安装使用文档(与Git集成)
标签:style blog http color java os 使用 io 文件
原文地址:http://blog.csdn.net/houqd2012/article/details/38798419