getea上代码提交后通过webhook触发jenkins进行构建

1. 环境 azure centos 8 、gitea, jenkins

2.创建gitea代码项目

getea上代码提交后通过webhook触发jenkins进行构建_第1张图片

3.创建jenkins任务

getea上代码提交后通过webhook触发jenkins进行构建_第2张图片

a. 配置gitea代码仓库,就是刚才的gitea项目的地址,然后创建访问的账号,用户名和密码方式。

getea上代码提交后通过webhook触发jenkins进行构建_第3张图片

 b.勾选触发器的第一项“”触发远程构建“”,在输入框里输入安全点的密码。然后把红框中的url复制到gitea的web hook的界面

 注意jenkins_url和token_name要分别替换成真实的ip或者域名和刚才输入的安全字符串。

4.配置gitea的webhook

getea上代码提交后通过webhook触发jenkins进行构建_第4张图片

找到gitea上面对应的项目,进入仓库配置,选择管理web 钩子选项卡,在目标url中输入刚才jenkins中的地址,选择get方法请求。选中推送事件选项,然后点击更新钩子,并按测试按钮,就会触发测试构建

getea上代码提交后通过webhook触发jenkins进行构建_第5张图片

getea上代码提交后通过webhook触发jenkins进行构建_第6张图片

前面打√表示推送成功,这时候返回jenkins,就会看到有新创建任务出现。

getea上代码提交后通过webhook触发jenkins进行构建_第7张图片

5.疑难问题解决

 在我的vware虚拟机中容器默认是可以访问到宿主机和外网。但是在azure的虚拟机中容器既不能访问宿主机也不能访问外网

因此gitea的钩子测试总是失败,因为我的gitea是在容器中,jenkins在宿主机,没有采用容器的方式安装。

getea上代码提交后通过webhook触发jenkins进行构建_第8张图片

最后搜索了很久,通过这篇博客https://my.oschina.net/crazyharry/blog/1105079

在azure虚拟机上执行了

firewall-cmd --permanent --zone=trusted --change-interface=docker0

firewall-cmd --permanent --zone=trusted --add-port=4243/tcp

firewall-cmd --reload

这三条命令,容器就可以访问到了外网,进入gitea容器后ping新浪网可以ping通了,意思就是gitea就可以推送消息到jenkins。

getea上代码提交后通过webhook触发jenkins进行构建_第9张图片

这样代码更新后就会自动执行构建!!!

 

 

 

你可能感兴趣的:(devops,devops)