gitlab实现webhook触发jenkins 自动,构建,测试,push webhook构子 总结

最新一直在学习 工做 + 学习 去掉 90%   因此blog  一直没更 真是很很差!  exsi ceph gitlab jenkins harbor k8s  docker-compose apollo  springboot  dubbo      太多太多 。。。整合  git

主题:web

如何设置GitLab以及Jenkins,实现每次GitLab上有提交事件的时候,都能触发Jenkins执行相应的操做,总结一下 主要分为如下几个步骤:spring

一、新建GitLab测试用例docker

进入我的GitLab帐号,在右上角的加号中,选出GitLab 的 New Project,能够新建我的的GitLab工程:shell

 

其他都走默认的设置,填写好project的名字,能够建立一个新的project,如图:centos

 

二、设置Jenkins安全

2.1 首先安装 GitLab pluginspringboot

在“系统管理”->“插件管理”,查看已安装插件,输入 GitLab, 看看是否已经安装,若是没有,则 查看 可选插件,搜索 GitLab,安装后重启便可。gitlab

2.2 新建一个测试工程学习

新建一个job,如图:

 

源码管理选择Git, 输入刚刚新建的GitLab的 URL以及我的的API_TOKEN:

 

目前只有master分支,后续能够根据不一样分支对应设置不一样的url,监听不一样分支的状况。
在构建触发器选项中,勾选 Build when a change is pushed to GitLab ,该选项最后的URL就是这个工程的URL路径,注意若是是本机,则会显示localhost, 能够将localhost改成我的的ip。
注意这个url, 下一步会用到这个url。能够在工程中设置构建后的操做后登到另外一台  centos 执行  执行一句shell脚本:

须要先添加密钥 凭据 在添加 host主机

主界面  >> 系统管理  >>>  系统设置    >> SSH remote hosts

 

返加主界面  >>>     点击: demo(project)  >>  配置

 

3. 设置GitLab的webhook

GitLab版本在不断变换,该版本的GitLab,如图能够找到WebHook的设置入口:

 

填入的url就是刚刚测试, 勾选push Event,这样就是每次有push操做的时候,就会触发webhook,执行填入的url中的操做:

 

点击保存,而后点击Test,能够测试是否能够执行,通常会报这些错误:

3.1 anonymous build

不支持匿名build, 这是回到jenkins中,在 系统管理 -> 全局安全管理中, 勾选 匿名用户具备可读权限 如图:

 

而后点击应用和保存, 回到GitLab,继续测试. 若是继续抱该错,则进入刚刚构建的工程,点击 构建触发器中选中的Build When a change is pushed右下角的高级选项,有一个Secret token,点击 Generate,会生成一个安全代码:

\

 

 

复制到webhook中的url下面:

 

而后保存,再测试,就能够经过,这时候会触发jenkins执行一次操做:

 

 

看看控制台输出:

 

3.2 valid crumb

若是报该错,则在安全设置中,不勾选 CSRF, 如图:

 

测试经过,后续能够在此基础上拓展, 监听不一样GitLab,同一个GitLab的不一样分支的push操做,来分别触发jenkins端执行对应的操做。


4. gitlab  用管理用户(root)登录 修改以下:    容许gitlab 本地局域网访问

 

 

相关文章
相关标签/搜索