Jekins+Gitlab+Nexus自动构建Project

1、安装

安装及操作步骤看前几篇博客:
CentOS7搭建nexus 3.13.0-01私服:https://blog.csdn.net/eussi/article/details/82935964
CentOS7安装gitlab:https://blog.csdn.net/eussi/article/details/82960131
Jenkins安装:https://blog.csdn.net/eussi/article/details/82988218
Jenkins操作说明:https://blog.csdn.net/eussi/article/details/82989354
Jenkins—内置构建触发器:https://blog.csdn.net/eussi/article/details/82993687

我这里将三个软件全部安装到了一台服务器上,安装时注意端口冲突问题,参照以上文章的安装和操作步骤即可

2、创建项目

类似github,在gitlab新建一个Java project,这里以一个maven项目为例,gitclone到本地,写几个简单的java代码,pom.xml文件中添加几个dependency等等,能用到nexus私服下载jar包,具体的说明还是查看步骤1中的几篇文章,这里重点是Jenkins的自动构建,gitlab上创建的project,如图:
Jekins+Gitlab+Nexus自动构建Project_第1张图片

3、服务器安装

Jenkins是由各种插件组成的,插件运行或者执行脚本等也需要服务器上安装了相关软件才行
1)由于我们需要自动构建一个maven项目,所以服务器需要安装maven,这里注意配置setting.xml文件,为了使用私服,将仓库下载地址指向Nexus私服,同样Jenkins需要maven插件
在这里插入图片描述
2)我们需要从gitlab拉取代码,所以服务器需要安装git,Jenkins需要gitlab,gitlab Hooks 插件

yum install git-core

在这里插入图片描述
在这里插入图片描述

4、Jenkins新建一个项目

点击新建项目,如图:
Jekins+Gitlab+Nexus自动构建Project_第2张图片
点击确定,如图:
Jekins+Gitlab+Nexus自动构建Project_第3张图片
1)首先来看源码管理,我们需要配置从哪里获取源码,点击git,如图:
Jekins+Gitlab+Nexus自动构建Project_第4张图片

  1. 这里有个repository URL仓库地址,进入gitlab的项目地址,有两种形式,一种通过SSH,一种通过HTTP,如图:
    Jekins+Gitlab+Nexus自动构建Project_第5张图片
  2. 首先看HTTP形式的,如果填写的地址连接不上会报错,如图:
    Jekins+Gitlab+Nexus自动构建Project_第6张图片
    点击Add按钮,添加Credentials,如果是HTTP连接,一般类型选择username with password,输入用户名、密码、id即可,如图:
    Jekins+Gitlab+Nexus自动构建Project_第7张图片
    点击添加后,Credentials选择刚刚添加的内容,如图:
    Jekins+Gitlab+Nexus自动构建Project_第8张图片
    不出现错误提示,即为连接成功
  3. 再看SSH形式的,同样,如果填写的地址连接不上会报错,这种方式之前的用户名密码形式已经不行了,如图:
    Jekins+Gitlab+Nexus自动构建Project_第9张图片
    这里需要生成秘钥和私钥文件,在git中,运行:
git config --global user.name "xxx"
git config --global user.email "[email protected]" #后面是邮箱
ssh-keygen -t rsa -C "[email protected]" #后面是邮箱

注意运行ssh-keygen时,需要输入密码,一般直接回车,否则输入密码太麻烦,在用户目录下.ssh文件夹中找到公钥和私钥文件:
Jekins+Gitlab+Nexus自动构建Project_第10张图片
在gitlab上添加公钥,如图:
Jekins+Gitlab+Nexus自动构建Project_第11张图片
Jekins+Gitlab+Nexus自动构建Project_第12张图片
回到Jenkins,点击Add按钮,添加Credentials,如果是SSH连接,一般类型选择SSH Username with private key,输入用户名、将私钥内容粘贴进private Key框中、在输入id即可,如图:
Jekins+Gitlab+Nexus自动构建Project_第13张图片
点击添加后,Credentials选择刚刚添加的内容,如图:
Jekins+Gitlab+Nexus自动构建Project_第14张图片
4. 对于Branches to build,这是选择要构建的分支,写法点击右侧问号查看详细说明,这里选择master分支进行构建:
在这里插入图片描述
2)对于构建触发器
我们选择Build when a change is pushed to GitLab,注意后面的webhook,gitlab配置时需要,如图:
Jekins+Gitlab+Nexus自动构建Project_第15张图片
3)Pre Steps执行一条命令
如图:
Jekins+Gitlab+Nexus自动构建Project_第16张图片
4)Build配置maven,并输入执行的maven命令
如图:
Jekins+Gitlab+Nexus自动构建Project_第17张图片
点击红色字体连接,或者点击系统管理–>全局工具配置配置maven均可以:
Jekins+Gitlab+Nexus自动构建Project_第18张图片
配置后:
在这里插入图片描述
5)构建之后的操作,以及邮件通知,这里暂时省略

5、gitlab webhooks

进入gitlab,点击项目的setting,选择integrations,填写jenkins构建触发器显示的webhook,并选择触发的时间,这里选择Push Events,如图:
Jekins+Gitlab+Nexus自动构建Project_第19张图片
点击add webhook之后,如图:
Jekins+Gitlab+Nexus自动构建Project_第20张图片
此时点击Test下拉框,选择Push Events触发,一般会发生403的错误,如图:
Jekins+Gitlab+Nexus自动构建Project_第21张图片
解决这个问题,首先需要正确安装了gitlab hook插件,然后在系统管理 --> 系统设置 --> 取消勾选 Enable authentication for ‘/project’ end-point,保存后再次点击测试,如图:
Jekins+Gitlab+Nexus自动构建Project_第22张图片
此时查看Jenkins,发现完成了一次构建,如图:
Jekins+Gitlab+Nexus自动构建Project_第23张图片
虽然构建失败,但是的确触发了构建。说明webhook生效了

通过查看构建的控制台输出,发现mvn的goal写的有问题,应该去掉mvn,如图:
Jekins+Gitlab+Nexus自动构建Project_第24张图片
Jekins+Gitlab+Nexus自动构建Project_第25张图片
修改后,点击立即构建测试,构建成功,如图:
Jekins+Gitlab+Nexus自动构建Project_第26张图片
由于使用的maven的goal是deploy,去私服查看,可以发现已经部署成功,如图:
Jekins+Gitlab+Nexus自动构建Project_第27张图片

6、通过push代码测试生效

push代码,如图:
Jekins+Gitlab+Nexus自动构建Project_第28张图片
触发了一次新的构建,如图:
Jekins+Gitlab+Nexus自动构建Project_第29张图片
测试成功

7、只监测某一分支的push events

此时在构建触发器设置的位置,点击高级,配置如图:
Jekins+Gitlab+Nexus自动构建Project_第30张图片
此test分支push代码,在gitlab上可以查看是webhook是调用了的,但是未触发构建,如图:
在这里插入图片描述
此时master分支push代码,触发了一次构建,如图:
Jekins+Gitlab+Nexus自动构建Project_第31张图片
这里就介绍完了,当然还要更多的细节,篇幅有限,需要在使用中慢慢发现他们的作用和使用注意事项,但是总体来说,等你用了几次之后就会发现Jenkins很容易上手。

你可能感兴趣的:(++++,Jenkins,related,Jenkins,gitlab,nexus,自动构建,webhook)