本文由ilanniweb提供友情赞助,首发于烂泥行天下
jenkins技术分享QQ群:571981257
2018.06.08更新
更换jdk版本,由原来的jdk1.7,升级为jdk1.8
2020.05.03更新
新增jenkins镜像地址:
清华大学镜像源 https://mirrors.tuna.tsinghua.edu.cn/jenkins/
中科大镜像源 http://mirrors.ustc.edu.cn/jenkins/
北京理工大学 http://mirror.bit.edu.cn/jenkins/
新增gitlab镜像地址:
清华大学 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/
上一篇文章,我们学习了有关jenkins插件的安装与配置,这篇文章我们再来介绍下jenkins与gitlab的集成。
PS:本篇文章还是以编译、打包jenkins源码为例,进行jenkins的构建。
有关jenkins源码的编译、打包,可以参考这篇文章《烂泥:jenkins源码编译和打包》。
jenkins源码是java语言开发的,通过maven进行项目的管理。所以本篇文章中会牵涉到maven相关的配置。
如果你的代码是其他语言开发的话,比如php,nodejs等,是不需要maven的。
一、 基础环境配置
在正式集成之前,需要我们在jenkins服务器上进行相关的基础环境配置。
安装git、maven和jdk等基础配置,可能会有童鞋问,jenkins不是有这几个软件相关的插件吗?
为什么还需要在jenkins服务器上安装呢?
原因是这样的,尽管jenkins本身是有以上软件插件的,但是实际上jenkins是通过这些插件去jenkins服务器上调用这些软件,这也是jenkins插件的大致工作原理。所以,我们必须在jenkins服务器上安装这些软件。
1.1 安装jdk
jdk这个是基础环境必须的,在此我就直接给出相关的命令:
wget http://mirrors.linuxeye.com/jdk/jdk-8u162-linux-x64.tar.gz
tar -xf jdk-8u162-linux-x64.tar.gz -C /usr/local/
chown root:root -R /usr/local/jdk1.8.0_162/
cat >> /etc/profile << “EOF”
export JAVA_HOME=/usr/local/jdkjdk1.8.0_162
export PATH=$PATH:$JAVA_HOME/bin
EOF
source /etc/profile
java –version
1.2 安装git
有关git的安装与配置,可以参考这篇文章《烂泥:git服务器搭建》。在此我们只需要安装git即可,相关命令如下:
yum -y install git
1.3 安装maven
有关maven的安装与配置,可以参考这篇文章《烂泥:依赖管理maven3.3安装与配置》。
相关命令如下:
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
tar -xf apache-maven-3.3.9-bin.tar.gz -C /usr/local/
cd /usr/local/
mv apache-maven-3.3.9 maven
vim /etc/profile
export M2_HOME=/usr/local/maven/
export PATH=$PATH:/usr/local/mysql/bin:$M2_HOME/bin
source /etc/profile
java –version
mvn -v
二、gitlab相关配置
既然是jenkins与gitlab集成,那么我们现在来介绍下gitlab的相关配置,有关gitlab的安装,我会在后续的文章中介绍。在此只介绍gitlab创建ilannigit仓库,以及相关的配置。
2.1 创建gitlab仓库
登录到gitlab管理页面,并切换到相应的用户下,然后创建ilannigit仓库,在此我们是在devuser用户下操作的,如下:
上图中,我们创建ilannigit仓库。
给gitlab中的ilanni用户配置ilannigit访问的权限。
通过上图,我们可以看到,ilanni用户对ilannigit这个仓库具有master权限。
2.2 初始化ilannigit仓库
ilannigit仓库创建完毕后,现在仓库里面是空的,现在我们来把jenkins源码上传到该仓库中,即对ilannigit仓库进行初始化。
ilannigit仓库的初始化,我们是在Windows下使用TortoiseGit这个工具进行的。
下面的操作,主要是截图,文字说明比较少,如下:
现在我们切换到gitlab上查看ilannigit仓库的相关信息,如下:
通过上图,我们可以很明显的看出目前ilannigit仓库已经初始化完成。
PS:以下所有的操作都是在jenkins的UI界面上完成的。
三、安装与配置git和gitlab插件
gitlab仓库相关的配置完毕后,现在我们开始安装jenkins几个经常使用的到的插件。
有关jenkins插件的安装,可以参考这篇文章《烂泥:jenkins插件安装与卸载》
先以git和gitlab插件的安装与配置为例。
3.1 安装git和gitlab插件
安装git和git client plugin插件如下:
系统管理→插件管理→可选插件
git插件官方帮助文档:
https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin
git插件官方最新帮助文档:
https://plugins.jenkins.io/git
git client plugin插件官方帮助文档:
https://wiki.jenkins-ci.org/display/JENKINS/Git+Client+Plugin
git client plugin插件官方最新帮助文档:
https://plugins.jenkins.io/git-client
安装gitlab插件如下:
gitlab插件官方帮助文档:
https://wiki.jenkins-ci.org/display/JENKINS/GitLab+Plugin
gitlab插件官方最新帮助文档:
https://plugins.jenkins.io/gitlab-plugin
3.2 配置git和gitlab插件
五、安装与配置push over ssh插件
当我们把该项目编译、打包完毕后,想进行后续的操作,比如把打包后的软件包上传到远程服务器,并在远程服务器上执行相关操作时,我们就可以通过push over ssh插件来实现。
5.1 安装push over ssh插件
安装push over ssh插件,如下:
系统管理→插件管理→可选插件
push over ssh插件官方帮助文档:
https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+SSH+Plugin
push over ssh插件官方最新帮助文档:
https://plugins.jenkins.io/publish-over-ssh
5.2 配置push over ssh插件
六、安装与配置maven插件
push over ssh插件安装与配置完毕,现在我们来安装maven相关的插件。
6.1 安装maven插件
安装maven插件,如下:
系统管理→插件管理→可选插件
maven插件官方帮助文档:
https://wiki.jenkins-ci.org/display/JENKINS/Maven+Project+Plugin
maven插件官方最新帮助文档:
https://plugins.jenkins.io/maven-plugin
6.2 配置maven插件
七、创建job
所有相关的插件安装与配置完毕后,我们现在在jenkins创建一个job,如下:
上图中我们创建了一个ilannigit的jenkins任务,并且该项目是一个maven项目。
注意:如果没有安装maven插件的话,在创建任务时,是看不到“构建一个maven项目”,这个选项的。
同时,如果你不是一个maven项目的话,建议选择“构建一个自由风格的项目”。
当然你也可以创建一个其他类型的项目,这个我们在以后的文章会相继介绍的。
通过上图,我们可以看到目前ilannigit这个job已经创建完毕。
PS:以下所有配置都是在job任务中进行的。
八、配置ilannigit任务
ilannigit这个jenkins任务创建完毕后,我们现在来配置下。
8.1 选择jdk版本
在该job中jenkins源码的编译、打包,我们使用的是jdk1.7版本,如下:
8.2 配置gitlab仓库
8.3 配置maven插件
在job中maven插件比较简单,我们只需要把Gloals and options选项中填写maven的相关命令即可,如下:
clean install -Dmaven.test.skip=true
8.4 配置 push over ssh插件
九、构建job
ilannigit这个jenkins任务配置完毕后,我们现在来进行构建,如下:
ilannigit→立即构建
在Console Output中可以看到jenkins构建的过程,如下:
开始从ilannigit仓库下载源码,如下:
开始执行相关的maven命令,如下:
开始从maven的nexus私库下载相关的依赖,如下:
maven开始进行编译与打包,如下:
上图中根据实际的情况会占用很长时间,需要你耐心等待。
maven进行编译、打包后,jenkins把war包上传到远程服务器,并进行相关的操作,如下:
通过上图,我们可以很明显的看到,ilannijenkins.war已经上传到远程服务器,并且也执行了相关的操作。
到此有关jenkins与gitlab集成就已经全部结束。
未经允许不得转载:烂泥行天下 » 烂泥:jenkins与gitlab集成(2020.05.03更新)