1. 环境 azure centos 8 、gitea, jenkins
2.创建gitea代码项目
3.创建jenkins任务
a. 配置gitea代码仓库,就是刚才的gitea项目的地址,然后创建访问的账号,用户名和密码方式。
b.勾选触发器的第一项“”触发远程构建“”,在输入框里输入安全点的密码。然后把红框中的url复制到gitea的web hook的界面
注意jenkins_url和token_name要分别替换成真实的ip或者域名和刚才输入的安全字符串。
4.配置gitea的webhook
找到gitea上面对应的项目,进入仓库配置,选择管理web 钩子选项卡,在目标url中输入刚才jenkins中的地址,选择get方法请求。选中推送事件选项,然后点击更新钩子,并按测试按钮,就会触发测试构建
前面打√表示推送成功,这时候返回jenkins,就会看到有新创建任务出现。
5.疑难问题解决
在我的vware虚拟机中容器默认是可以访问到宿主机和外网。但是在azure的虚拟机中容器既不能访问宿主机也不能访问外网
因此gitea的钩子测试总是失败,因为我的gitea是在容器中,jenkins在宿主机,没有采用容器的方式安装。
最后搜索了很久,通过这篇博客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。
这样代码更新后就会自动执行构建!!!