jenkins配置gitlab自动化更新打包并解决500错误
前言
提示:如果你是从0开始构建jenkins自动更新打包,请参考:https://www.cnblogs.com/ljno/p/15907940.html
本文适用于已搭建好jenkins环境的用户
1、在gitlab创建jenkins需要使用的token
如图:输入name名字为jenkins,选择api,点击Create personal access token生成token码
2、下载Gitlab Plugin
在jenkins里面系统管理》插件管理》下载Gitlab Plugin和Gitlab API Plugin。下载这两个是因为你不下载这两个你的系统配置里面会没有gitlab选项。至于为什么下载两个是因为我搜索Gitlab的时候觉得这两个有眼缘。下载完之后记得重启jenkins.
3、配置gitlab
在系统管理》系统配置里面找到gitlab配置并输入对应信息。如果没有gitlab选项则进行第二部之后需要重启。
Connection name 连接名
Gitlab host URL gitlab地址
4、配置Credentials
在Credentials选项里面点击添加凭证。选择GitLab API token。复制从步骤1的token。
5、测试链接
选择刚才生成的凭证,点击测试链接。看到success则表示成功。到最底下去点击保存。
如果发现链接不上。不要搞什么花里胡哨。直接去检查jenkins和gitlab的地址是不是可以互相ping通。
6、自动化配置
进入你需要自动化部署的项目。在配置》General里面可以看到GitLab Connection已经有了你刚才的配置。
7、配置gitlab源码管理并指定分支
点击源码管理输入你的gitlab项目地址,并选择刚才的凭证。name和Refspec可以直接复制我的。
origin
+refs/heads/master:refs/remotes/origin/master
如果要使用其他分支(比如我自己的feature分支)可以改为
+refs/heads/feature:refs/remotes/origin/feature
并将指定分支改为*/feature
完成这一步之后,已经可以去手动构建项目打包了。
8、构建触发器
紧接着第7步,点击构建触发器。勾选build when a change …
中间的选项可以根据自己的需求来,看不明白的英文可以去翻译下。比较简单。
9、生成Secret token
选择高级。点击生成Secret token.
10、配置gitlab webhooks
在gitlab里面进入你的项目,点击设置,找到Webhooks.将第9步生成的Secret token和第8步build when a change …后面的url复制过来。建议勾掉Enable SSL verification。
看到如下,则保存成功。
可以去尝试提交代码,看看有没有自动打包。也可以点击测试。这里我们就点击测试。
11、构建触发器500
点击测试出现500和一堆报错。找到如下图。将允许Webhook和服务对本地网络的请求勾上。
12、设置jenkins API TOKEN
继续点击测试发现仍然500。在jenkins个人设置里面去生成一个API TOKEN。
参考: https://blog.csdn.net/m0_62451624/article/details/122057046
13、修改webhooks Url
将步骤10的url改为如下。API token为步骤12生成的API TOKEN。
http://用户名:API token @IP+端口/jenkins/job/项目名称/build
注意这个job,此处必须用job。不能用jenkins生成Url中的project。
IP+端口不能带http:// 只能使用纯IP。例如:127.0.0.1:8080
点击测试仍然出现500.
14、再次修改webhooks Url
参考:https://blog.csdn.net/sinat_39212726/article/details/118324507
并结合第13步。
将url修改为:
http://用户名:API TOKEN@IP+端口/job/项目名称
点击测试。此时应该返回200.但自动化构建仍然没有成功。
15、最终成功
思考一下。已经出现200了。证明离成功很近了。但是仍然没有自动化构建,我想着可能是因为我们是点击的测试,可能只会提示成功,并不会有对应的更新代码打包的操作。然后我去试着手动提交代码。结果仍然发现,在测试页面可以看到我提交代码的记录触发了。但是jenkins并没有自动更新打包。
我反复观看12步和13步两位同行的博客,想着我是不是能把两个路径结合一下。
于是我在路径的最后加了个build:
http://用户名:API token @IP+端口/job/项目名称/build
我的完整路径如图:
点击测试。返回201.并且进入jenkins中查看,发现已自动部署。
总结
本来13~15步我只需要把最终我修改的路径放出来就可以。但是我想让更多人了解到从失败一步步走向成功的过程。在这过程中我参考了两位同行的博客,也应该把我参考他们的内容并得出自己结论的过程写出来分享给大家。希望大家在遇到类似问题的时候能够做到参考别人的经验得出自己解决办法,做会思考的人。