【大话QT之十七】Jenkins介绍及安装使用文档(与Git集成)
文章文件夹结构例如以下:
1> Jenkins与Git相关介绍
2> Jenkins部署安装
3> Gitblit部署安装
4> Jenkins与Git集成使用
5> 项目集成开发实例
6> 总结
一、Jenkins与Git相关介绍
Jenkins是如今很流行的持续集成(Continuous Integration)CIserver,它的前身是Hudson。Jenkins易于安装,不须要数据库的支持,直接通过Web界面进行配置,并且集成了RSS/Email的通知机制,支持分布式构建,具有丰富的插件,这些都是Jenkins相比其他持续集成server的优势所在。
Git在Wikipedia上的定义是,它是一个免费的、分布式的版本号控制工具,或者是一个强调了速度快的源码管理工具。Git最初被Linux Torvalds开发出来用于管理Linux内核的开发。每个Git的工作文件夹都是一个全然独立的代码库,并拥有完整的历史记录和版本号追踪能力,不依赖于网络和中心server。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会在8080port启动,能够通过:netstat -anop | grep 8080 来查看,訪问:http://192.168.85.128:8080/訪问, 注意此时要关闭防火墙。
7> 配置用户安全訪问
如今,我们来配置Jenkins的安全认证。默认情况下Jenkins“同意不论什么人做不论什么事情”,这里我们将採用基于矩阵的安全认证,事实上就是权限列表。
点击“Configure Global Security”-> “Jenkins专实用户数据库”-> “同意用户注冊”,点击保存。保存后,在右上角就出现了注冊的button。
点击注冊,填写对应的信息后,点击保存。
如今,我们将限制用户注冊,採用“基于安全矩阵的授权策略”。
将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复制到启动文件夹下,并设为开机自启动。
改动httpport:
运行安装 ./install-service-centos.sh
3> 启动gitblit服务
service gitblit start
从以上错误中,应该能够看出是java的版本号太低。又一次安装较高版本号的java:jdk-7u55-linux-x64.rpm。
訪问:http://192.168.85.169:8443/
默认账号和password为:admin/admin
admin登陆后改动password。
创建用户,并创建第一个版本号库:
本地创建HelloWorld项目,并将代码提交到版本号库。
新建一个helloworld.c文件,仅输出一句HelloWorld,并提交版本号库。
如今在Gitblit的web端即能够看到版本号库的提交记录。
这里显示的时间是8小时前,是由于我本机的时间与安装gitblit的server的时间不一致。
四、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集成)的更多相关文章
- Jmeter+Badboy安装使用文档
Jmeter+Badboy安装使用文档 目录 1.jmeter安装 1 2.Jmeter基础使用 3 3. 使用Jmeter进行分布式测试 ...
- Xcode离线安装帮助文档
Xcode离线安装帮助文档 1.在线查看帮助文件:Xcode下查看帮助文件,菜单Help-Developer Documentation在右上角搜索框中即可检索,但速度很慢,在线查看. 2.下载帮 ...
- CM5(Cloudera Manager 5) + CDH5(Cloudera's Distribution Including Apache Hadoop 5)的安装详细文档
参考 :http://www.aboutyun.com/thread-9219-1-1.html Cloudera Manager5及CDH5在线(cloudera-manager-installer ...
- Visual Studio 2010 安装帮助文档问题
今天重装系统,装完VS2010后,如往常一样安装文档,却弹出如下错误"Could not create the local store in the specified folder.... ...
- keepalived双机热备,安装部署文档
keepalived双击热备,安装部署文档: 下载目录:/apps/keepalived-1.2.7.tar.gz 1:---> yum install -y make wget 2:---&g ...
- azkaban编译安装配置文档
azkaban编译安装配置文档 参考官方文档: http://azkaban.github.io/azkaban/docs/latest/ azkaban的配置文件说明:http://azkaban. ...
- EasyGBS国标流媒体服务器GB28181国标方案安装使用文档
EasyGBS - GB28181 国标方案安装使用文档 下载 安装包下载,正式使用需商业授权, 功能一致 在线演示 在线API 架构图 EasySIPCMS SIP 中心信令服务, 单节点, 自带一 ...
- LVS+Heartbeat安装部署文档
LVS+Heartbeat安装部署文档 发表回复 所需软件: ipvsadm-1.24-10.x86_64.rpmheartbeat-2.1.3-3.el5.centos.x86_64.rpmhear ...
- (转)SQL Server 2012 手动安装帮助文档+排错
逆天SQL Server 2012装的不要不要的,最后发现...竟然没帮助文档...汗啊!原来它跟vs一样要自己装帮助文档...好吧,官网一下载,妹的...报错...然后就让我们还原这个安装过程以及逆 ...
随机推荐
- 查询mysql哪些表正在被锁状态
1.查进程,主要是查找被锁表的那个进程的ID SHOW PROCESSLIST; 2.kill掉锁表的进程ID KILL 10866;//后面的数字即时进程的ID
- Java EE登陆界面生成随机数防止恶意注册或者登录
package cn.com; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.a ...
- Linux主机上发布java web应用
1.链接远程主机命令 ssh user@hostname 如: shh root@192.168.1.1 2.查看主机操作系统版本 uname -a 3.linux系统安装mysql a)检查是否安装 ...
- prevPage / nextPage in jQuery Mobile | George Nixon's Blog
prevPage / nextPage in jQuery Mobile | George Nixon's Blog ui.prevPage[0].id I finally worked this o ...
- 【Linux】环境变量设置
在Windows中环境变量设置是非常easy的事情.例如以下图.仅仅要右键我的电脑->高级系统设置->环境变量,选择Path之后,点击"编辑"就能够输入你要加入的内容. ...
- 基于visual Studio2013解决面试题之0204最大子集数组
题目
- 海美迪Q系列视频文明书
海美迪Q系列视频文明书
- Twenty Newsgroups Classification任务之二seq2sparse(2)
接上篇,SequenceFileTokenizerMapper的输出文件在/home/mahout/mahout-work-mahout0/20news-vectors/tokenized-docum ...
- Struts2通过自己定义拦截器实现登录之后跳转到原页面
这个功能对用户体验来说是非常重要的.实现起来事实上非常easy. 拦截器的代码例如以下: package go.derek.advice; import go.derek.entity.User; i ...
- POJ 1273 Drainage Ditches(网络流,最大流)
Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover ...