您的位置:首页 > 编程语言

构建基于Jenkins + Github的持续集成环境 本人实践版

2016-09-21 17:59 1101 查看
Jenkins是什么

Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工         作,功能包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。


1、JenKins

官网:https://jenkins.io/index.html 点击下载,选择LTS版本。


下载下来的是war。

2、安装JenKins

网上说有两种方式:本人都实践过,都是可行的!
(1)直接使用Java命令行的方法:(前提Java jdk已经装好,并且环境变量配置好了)
java -jar jenkins.war就可以啦。
第一次启动 无论哪种方式都要输入系统自动生成的密码,
在C:\.jenkins\secrets\initialAdminPassword文件里,打开它复制就行。
或者在命令行中找到,复制

(2)把该war包放入到tomcat的webapps文件夹中,启动tomcat时,会自动解压该war包生成jenkins项目。


自此安装完毕。

(3)Linux安装的方法

其实以上一般是在window上的做法,要是是在linux下,则最好参考官网的做法:

ubuntu

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu

启动jenkins的命令:

sudo /etc/init.d/jenkins start
sudo /etc/init.d/jenkins stop


redhat和centos

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key sudo yum install jenkins


启动jenkins的命令:

sudo service jenkins start/stop/restart


3、访问JenKins

使用tomcat的方式访问:http://localhost:8080/jenkins/
使用Java命令行或是Linux的方式是:http://localhost:8080


4、安装插件

之所以要安装插件是我们以后的操作都要用到插件。没有的话,基本干不了活。
因为我们是要使用github,所以需要用到git plugin、和github plugin.
我们进入:
系统管理 -->管理插件 --->可选插件,
①这个时候你会发现显示无更新列表
②点击”高级“在升级站点处url填写http://mirror.xmission.com/jenkins/updates/update-center.json,以前的站点被墙掉了,不可用。
③这时再回到”可选插件“出就可以看到列表了。
④在可选插件页面中ctrl+f搜索你想要安装的插件,比如git plugin。
找到后点击它,在之后的页面中点击版本号,进行下载。(这里之所以不使用直接安装,因为在中国被墙掉啦)所以我们要手动安装,下载下来的文件是.hpi。
安装插件往往会出错。比如:




如上图,我在安装github插件时,报了错误。根据信息提示,它需要你先安装GitHub api这个插件。

所以呢!你再去”可选插件“中搜索GitHub api插件,进行手动安装。

之后再来安装github插件!

⑤手动安装:点击“高级”下面可以看到上传文件

注意:要是出现了安装插件失败,90%原因就是因为它需要你先安装其他插件,因为他们存在依赖关系,还有10%的原因,可能网速的原因导致你下载下来的.hpi文件不完整。

5、配置git

在安装好插件后,就要进行配置本机的git
系统管理 --->Global Tool Configuration 点击git安装




注意:是git文件夹中的cmd文件夹中的git.exe


Linux中



要是你不知道可以执行命令:

[root@master01 ~]# which git
/usr/bin/git


6、新建job

在首页点击”新建“




选择“构建一个自由风格的软件项目”;

点击“OK”;

之后就进入了job的配置页面

7、配置

7.1、勾选“github project”要是你没有的话,说明github plugin插件没有装好




要是是gitlab上拉代码就不用勾选。

7.2、源码管理:




①在Repository URL填写自己的远端地址。git打头的是ssh的连接形式,http打头的是http的连接形式。

②在Credentials这一栏,我弄了很久,每次我都是直接点击那个“Add”->“Jenkins”然后创建账号。结果总是不对。后来我回到首页:





点击 Stores scoped to Jenkins中的 Jenkins



在System中鼠标移动Global credentials(unrestricled)右边会出现小三角,

点击会出现Add Credentials.



Kind中选择SSH类型



Username这里是可以随便填,建议填写你生成ssh时的key。

private key这里选择第一个“Enter directly”,再把.ssh文件夹中的私钥全部复制过来(包括注释)。

至此,正常情况下这样配置,ssh认证是没有错的!

③Branches to build这一栏:*/master

8构建触发器

这里我是勾选:
①Build when a change is pushed to GitHub
②Poll SCM
其中第一个是检测远程github是否有代码提交,第二个是类似于定时,比如定时两分钟:
H/2 * * * *;两个同时勾选才会起作用!
如图:




效果就是每两分钟检测有代码提交的话,就进行自动构建!

9构建



构建这里我选择的是bat批处理,一般都是选择shell脚本!

这里脚本作用就是你怎么去构建,我这里写的bat批处理的意思是进行编译和执行main方法。

这一块你需要对手动编译要有所了解:

参考:http://blog.csdn.net/caesarzou/article/details/5462189

对于Java项目来说,当Jenkins从远端仓库拉到代码后,一般要先进行编译成.class文件,

之后,在进行打包。打包好了之后,再进行部署,发布!

对于Linux环境下肯定是使用shell的。下面是我编译、打包的shell脚本

#!/bin/bash
#获得当前目录
cur=$(pwd)

output_path=${cur}/classes
echo $output_path
if [ ! -d $output_path ]; then
mkdir $output_path
fi
## 获取依赖库和需要编译的java文件
export libs=`find lib -name "*.jar" |xargs|sed "s/ /:/g"`
export javafiles=`find src -name "*.java" |xargs|sed "s/ / /g"`
##编译
javac -d ${cur}/classes -cp ${libs} -encoding utf-8 ${javafiles}
##打包
cd $output_path
jar -cvf ${cur}/quartz-class.jar *
cd ${cur}/src
jar -cvf ${cur}/quartz-source.jar *


在这里一定要注意代码的这段内容:


if [ ! -d $output_path ]; then
mkdir $output_path
fi


这里面[]与里面的语句一定要有空格,前后都要有,没有空格的话,会报错!
参考地址:http://www.cnblogs.com/icerainsoft/p/4300799.html


10、构建后操作

部署、发布,就在这一步进行。同样是写脚本。可以参考远程部署这篇:


http://blog.csdn.net/u013066244/article/details/52786217

脚本配置好了后,就可以点击保存了!

接下来可以点击“立即构建”看看效果!可以在console output中看错误信息!




总结:个人觉得难点除了之前那个ssh认证的地方,就是写shell脚本,也不是很难,就是平时很少接触shell脚本,还有就是手动编译,手动打包,这些都需要了解!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: