Gogs webhook实现git push 远程分支后自动触发Jenkins构建

时间:2022-11-09 08:49:35

项目组已实现通过Jenkins进行构建,最近构建任务加入了sonarQube进行代码扫描的内容。

开发每次推送代码到仓库时(git push),都需要执行一次构建,以产生sonarQube扫描报告。

考虑到Gogs 的webhook可以检测push事件后进行处理,我们决定把整个构建做成自动化,实现开发推送代码到仓库后,自动触发Jenkins构建,提高开发效率。


一、Jenkins安装Generic Webhook Trigger Plugin

使用管理员账号登录Jenkins后,在系统管理-》管理插件,搜索“Generic Webhook Trigger”后安装,顺利完成插件安装:

Gogs webhook实现git push 远程分支后自动触发Jenkins构建


二、Jenkins项目配置

Gogs webhook实现git push 远程分支后自动触发Jenkins构建


其中在“触发远程构建”勾选后,需要填写身份验证令牌(TOKEN_NAME),这里配置为"abc123",后续在webhook配置时用到。


三、Gogs仓库配置

(1) 使用管理员账号登录Gogs,点击“仓库设置”

Gogs webhook实现git push 远程分支后自动触发Jenkins构建



(2) 选择左侧菜单的“管理Web钩子”,选择右上角的“添加Web钩子”,下拉菜单展开后,选择Gogs:

Gogs webhook实现git push 远程分支后自动触发Jenkins构建

主要配置推送地址,例如:

http://username:password@192.168.1.111:8888/generic-webhook-trigger/invoke?token=abc123

其中步骤二配置的TOKEN_NAME就是这里应用上了。

Gogs webhook实现git push 远程分支后自动触发Jenkins构建


配置好后,点击“添加Web钩子”保存内容。


(3) 验证配置内容

重新选中刚才配置的内容,进入配置页面

Gogs webhook实现git push 远程分支后自动触发Jenkins构建


页面底部有一个“测试推送”的按钮,点击按钮可以模拟一次推送(push request),然后检查Jenkins是否收到推送请求并处理:

Gogs webhook实现git push 远程分支后自动触发Jenkins构建


Gogs webhook实现git push 远程分支后自动触发Jenkins构建


四、后记

我们本来想实现精确到对git某个分支推送才触发构建的,但是Gogs的webhook配置暂时不支持,目前的配置仓库任何分支推送都会触发构建。