gitee提交代码触发Jenkins自动构建--解决jenkins运行在windows系统localhost上,gitee添加不了webHook的问题(内网穿透)

橙汁豪 2024-07-17 08:33:01 阅读 79

一、安装Jenkins

在Jenkins官网下载Jenkins 2.401.3版本!

注:只有2.401.3以上版本的Jenkins才支持gitee插件,2.346长期支持版本不行!

二、JAVA环境

Jenkins 2.401.3对应的JAVA环境是jdk17,请在本地下载jdk17并配置好环境变量,在cmd窗口中使用java -version命令可以看到 java version "17.0.10"即可。

三、Jenkins配置

1.打开Jenkins

在下载好的Jenkins的war包位置,打开cmd,用java -jar jenkins.war --httpPort=8899启动Jenkins

注:命令中的"jenkins.war"改成自己war包的名字,可能会带有版本号。

2.jenkins持续集成的操作以及本地的插件包的下载导入可以参考曹红杏老师的博客

一个springboot项目的jenkins持续集成配置_springboot集成jenkins-CSDN博客

注:老师给的插件导入到Jenkins 2.401版本里面可以使用,没有不兼容问题。

三、重点:安装gitee插件

1.点击Dashboard->Manage Jenkins

2.往下滑!找到System Configuration->Plugins

3.下载gitee插件

四、创建持续集成任务

同样请参考一个springboot项目的jenkins持续集成配置_springboot集成jenkins-CSDN博客

五、jenkins中Gitee webhook 设置

1.创建持续集成任务完成之后或者在创建的过程中,在构建触发器模块,我们可以看到有一个Gitee webhook 触发构建选项,勾选它!

注:请记住上图红框里面的URL地址,后面要考,这个地址和第七步的内网穿透有关系!!!

2.其他设置不用动,往下滑,找到Gitee WebHook 密码

3.点击生成按钮,生成 Gitee WebHook密码

注:这个密码等下也要用到!!

六、配置Gitee WebHook

1.打开你们的gitee仓库地址,这里我以我的学生宿舍管理系统仓库为例,点击管理

2.往下滑,找到WebHooks,点击右上角的添加webHook

3.填写URL和WebHook密码,点击添加,这里的URL和WebHook密码应该和上面第五步1.3.中框出来的一致

4.点击添加,发现添加不了

这是为什么呢?原因是这个地址是localhost也就是电脑本地的地址,gitee无法直接通过这个地址向你的Jenkins发送post请求,让Jenkins自动构建!

解决方法

用一个外网可以访问到的地址来代替这个地址里面的localhost:8899,如何实现呢,这就要引出内网穿透了!

七、内网穿透

市面上主流的内网穿透软件很多都是要收费的,如果需求不大,跟我一样只是为了完成课程作业,可以下载以下这个内网穿透软件,它可以提供免费服务!

Natapp

项目主页:natapp.cn

项目介绍:基于ngrok的国内的内网穿透工具,类似花生壳,有免费版本,比花生壳好。免费版本:提供http,https,tcp全隧道穿透,随机域名/TCP端口,不定时强制更换域名/端口,自定义本地端口。收费版本也就几元每月。

1.打开上面的官网网址,点击右上角的免费注册,注册一个账号

注:后面需要身份证实名!

2.注册登录后,购买一个免费隧道

3.填入端口,然后购买

4.点击右上角的客户端下载,下载natapp

5.根据你自己的电脑下载,我下的是Windows 64位的

6.下载配置文件

点击右上角的教程/文档

点击使用本地配置文件config.ini

点击下载windows版本

④把刚才下载下来的config.ini和natapp.exe解压存放到同一路径下,像下面这样

⑤找到我的隧道这个链接,查看并复制填写参数

记得Ctrl + s 保存

⑥运行natapp

八、重新配置Gitee WebHook

1.回到第六步中gitee配置webhook的界面

2.填写URL和WebHook密码,用刚刚netapp里面的网址代替localhost:8899

3.点击添加即可添加成功

九、测试

此时,尝试修改一下代码,往gitee上面推送

此时Jenkins收到gitee的push就会自动构建

十、说明

1.本地Jenkins需要一直启动着,才会触发构建

2.netapp也需要一直启动着,如果关闭了,重新启动

这个代替localhost:8899的网址会变,则又需要到gitee上面修改一下webhook的post URL

3.配置完gitee 的webhook后,点击测试按钮发送测试请求不会触发jenkins自动构建,没关系!

查看请求历史发现报404,这是因为X-Gitee-Event使用的是push_hooks

而正常生产从本地往gitee上推送时X-Gitee-Event使用的是Push Hook

所以是这个测试功能有问题,才会返回404,直接从本地推送代码可以实现触发jenkins的gitee触发器!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。