Gitlab利用Webhook实现Push代码后的jenkins自动构建
之前部署了Gitlab的代码托管平台和Jenkins的代码发布平台。通常是开发后的代码先推到Gitlab上管理,然后在Jenkins里通过脚本构建代码发布。这种方式每次在发版的时候,需要人工去执行jenkins上的构建动作,有时显得过于繁琐。于是就想到了Gitlab的Webhook功能,通过Webhook的相关设置,可以实现代码Push后,自动去触发jenkins上的构建动作,这样就不需要人工干预去执行发版操作了。设置如下:1)Jenkins上的操作
通常,jenkins在项目配置时是可以配置远程构建触发器,设置好jenkins的回调url后就可以让jenkins进行自动构建。这就需要先下载Gitlab Hook Plugin 插件。登陆Jenkins,分别点击"系统管理"->"插件管理"->"可选插件",选择Gitlab Hook Plugin
https://images2015.cnblogs.com/blog/907596/201702/907596-20170228165151954-1975719505.png
然后构建相应的项目工程,比如下面的test-wx(下面最关键的是第2步中查看url,然后用这个url回调地址去Gitlab的webhook上添加)
a)先设置代码的git下载路径,这里通过ssh方式(需要提前将Jenkins本机的key添加到Gitlab上)
https://images2015.cnblogs.com/blog/907596/201702/907596-20170228165557016-434969195.png
b)查看jenkin生成回调地址。在任务重构建触发器下获取回调URL。下面的URL那一行只有Gitlab Hook Plugin插件下载成功后才能显示。
https://images2015.cnblogs.com/blog/907596/201702/907596-20170228170120657-464849601.png
c)然后设置代码发布的推送脚本
https://images2015.cnblogs.com/blog/907596/201702/907596-20170228170244251-1728668207.png
2)Gitlab上的操作
登陆Gitlab上的testwx3项目中,添加webhook(用上面Jenkins中生成的回调url)
https://images2015.cnblogs.com/blog/907596/201702/907596-20170228170746845-1464344579.png
然后点击这个项目的"Settings"
https://images2015.cnblogs.com/blog/907596/201702/907596-20170228170846923-212100584.png
https://images2015.cnblogs.com/blog/907596/201702/907596-20170228170947735-1628279963.png
添加成功后,点击此webhook后面的test进行测试
https://images2015.cnblogs.com/blog/907596/201702/907596-20170228171045735-458526897.png
如果返回Hook successfully executed.表示配置成功。
这样,下次push代码后,就会自动触发jenkins上相关的构建工程进行自动发布了!无需人工干预~
https://images2015.cnblogs.com/blog/907596/201702/907596-20170228171109095-364436097.png
------------------------------------------------------------------------------------------------------
如上设置后,比如在gitlab的testwx3项目代码库中push一个test.txt文件,然后测试下是否自动发布了
https://images2015.cnblogs.com/blog/907596/201702/907596-20170228171534766-1429433705.png
然后去Jenkins上查看,如下发现已经自动发布了!
https://images2015.cnblogs.com/blog/907596/201702/907596-20170228171632157-1664557951.png
最后去目标机器192.168.1.19的/tmp/testwx目录下发现test.txt文件已经发布过来了~
https://images2015.cnblogs.com/blog/907596/201702/907596-20170228171840032-787472846.png
5、其他提示:
gitlab的webhooks url 是根据jenkins构建权限连接设置的,如果必须登录才能构建就必须获取jenkins的用户名及token,可以在jenkins用户-设置里面查看到 ,url格式
http://:@/
如果不须登录就能构建就直接设置为http//jenkins-server/job/security_Usm/build?delay=0sec,security_Usm是job名称
test报错403错误时Hookexecuted successfully but returned HTTP 403,我们须要进入jenkins系统设置-Configure Global Security中,关闭(去掉勾选: 防止跨站点请求伪造),然后在点击gitlabwebhooks test OK 返回201 成功,查看jenkins 项目自动构建啦
这样设置仅仅是在push代码时触发构建,不区分分支,如果区分分支jenkins中设置如下:
https://img-blog.csdn.net/20170823140106635?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3VhbnNodWxpeGlhbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
蓝色线部分拷贝到gitlab的webhooks下,红线部分为构建分支的正则配置,这样在push代码的时候只有pushdevelop分支才会触发构建,push别的分支不会触发构建。
本文出自https://www.cnblogs.com/kevingrace/p/6479813.html
页:
[1]