1 环境

操作环境:centos7

gitea服务器(代码仓库):192.168.41.84

jenkins服务器(自动化部署):192.168.41.81

nginx服务器(测试环境):192.168.41.83

关于各服务器的部署,其他的文章有详细的演示,这里不重复赘述。

2 创建gitea代码项目

为了演示效果,这里创建一个简单的html静态页面的站点。

具体怎么在gitea上面创建一个项目请看其他文章的详细演示。下面是一个创建完成的项目仓库。

getea触发jenkins

3 创建jenkins任务

源码管理的内容截图:

getea触发jenkins

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

getea触发jenkins

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

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

4 配置gitea的webhook

getea触发jenkins

getea触发jenkins

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

getea触发jenkins

getea触发jenkins

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

getea触发jenkins

5 疑难问题解决

如果出现以下的报错

Delivery: Post "http://10.147.17.157:8081/job/html_demo/build?token=jenkinsopsdev": dial tcp 10.147.17.157:8081: webhook can only call allowed HTTP servers (check your webhook.ALLOWED_HOST_LIST setting), deny '10.147.17.157(10.147.17.157:8081)'

getea触发jenkins

请确保/dat/gitea/conf/app.ini配置文件有以下的内容,如果没有请将其添加到文件中,并重启服务。

[webhook]
ALLOWED_HOST_LIST = 10.147.17.157

上面的ip(10.147.17.157)修改为jenkins的服务ip

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


如果在测试推送时报403

getea触发jenkins

请检测jenkins的【全局安全配置】中,在【授权策略】中,【匿名用户具有可读权限】选项有被勾选。

getea触发jenkins