一.gitlab实时触发jenkins(gitlab主动做了一个触发)

1.首先要在kenjins页面中添加gitlab插件

  • 点开jenkins页面,点击系统管理->插件管理->可选插件->搜索gitalab->直接安装GitLab(注意:如果此处安装了别的插件,记得及时将其删除,否则可能会影响之后的实验)
  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_推送


  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_ios_02

  • 会发现在安装过程中出现了报错,此原因是因为虚拟机没有连接网络
  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_ios_03

  • 此时尝试在server2中连接网络,发现无法成功ping通网络
  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_ios_04

  • [root@server2 ~]# ping www.baidu.com
  • 首先需要关闭jenkins服务,在虚拟机可以成功连通网络后,再开启jenkins服务
    [root@server2 ~]# systemctl stop jenkins
    [root@server2 ~]# ping www.baidu.com [root@server2 ~]# systemctl start jenkins

gitlab push文件结合jenkins自动构建 gitlab调用jenkins_ios_05

  • 再次进行安装,发现安装成功(注意:此时如果在可选插件中没有发现gitlab的话,在已安装中应该可以发现,我是直接将其卸载,重新进行安装了,避免之后产生问题)
  • 在插件管理中查看已安装,发现此时gitlab插件已经成功安装

    2.在jenkins中更改配置
  • 点击jenkins中的test项目中的配置
  • 点击构建触发器,选择Build when a change is pushed to GitLab.GitLab webhook URL://172.25.66.2:8080/project/test(即当推送到gitlab时,gitlab将通过集成传到某处),并点击高级
  • 在高级设置中会看见右下方有一个Generate,点击他,使其自动生成Screct Token(注意:此时要将URL和token进行复制)
  • 底下的配置不更改,点击保存,个人建议可以再点击应用

3.在gitlab中添加Webhooks

  • 在gitlab中点击管理中心
  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_git_06

  • 点击设置
  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_推送_07

  • 点击网络->外发请求->点击对勾(即允许钩子和服务对本地网络的请求)
  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_推送_08

  • 选择项目demo->设置->集成,将jenkins中中URL和Secret Token中的内容粘贴到这里,此时将所有触发器都点击,为了明显的看出效果(注意,如果在jenkins中将其取消点击,并保存后,此时Serect Token便不生效了,因为其是随机的且每次都会发生改变)
  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_推送_09


  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_git_10

  • 此时会发现Webhook已经生成
  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_ios_11

  • 点击Test->Push events(推送事件)
  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_推送_12

  • 此时会发现上方会显示钩子已经成功
  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_ios_13

  • 4.在jenkins中操作
  • 点击工程test,发现此时生成了#2,说明有新的推送,并点击#2
  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_推送_14

  • 为了查看详细的代码信息,点击控制台输出
  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_git_15

  • 发现控制台输出中显示成功
  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_git_16

  • 再次返回点击构建历史,查看时间轴,发现此时时间轴上有#2.说明成功
  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_git_17


  • gitlab push文件结合jenkins自动构建 gitlab调用jenkins_ios_18

  • 5.在物理机的kiosk用户下更改文件中的内容并上传
    [kiosk@foundation66 ~]$ cd demo/
    [kiosk@foundation66 demo]$ ls
    [kiosk@foundation66 demo]$ vim index.html
    [kiosk@foundation66 demo]$ git add index.html
    #此处虽然有报错,但是不影响,但是建议设置
    [kiosk@foundation66 demo]$ git commit -m “v2”
    [kiosk@foundation66 demo]$ git push -u origin master

gitlab push文件结合jenkins自动构建 gitlab调用jenkins_推送_19


文件中的内容更改如下:

www.westos.com
www.westos.com

6.在gitlab中进行查看,发现可以成功车啊看到index.html,并显示最后提交是1分钟前

gitlab push文件结合jenkins自动构建 gitlab调用jenkins_推送_20

  • 点进去后,发现文件的内容已经发生了更改

    7.再次点击jenkins中的工程test,发现此时重新构建了#3
  • 查看控制台输出,发现输出成功,且可以通过时间,发现与之前符合
  • 查看时间轴,发现#3存在