Jenkins配置Gogs自动构建

背景

有项目的代码放在Gogs上托管,然后又通过Jenkins做自动化部署,现在想要在本地代码Push到Gogs上时,Jenkins就执行更新部署。

过程原理

  • Jenkins的Gogs Plugin插件会提供触发打包的API;
  • Gogs的仓库设置提供了Web Hook(钩子);
  • 将Jenkins的API绑定到Gogs Web Hook的推送地址上;
  • 这样就能指定Gogs在Push后将事件推送给Jenkins,然后Jenkins去执行项目构建与部署。

Jenkins Gogs Plugin

在Jenkins的插件管理中可以找到并安装Gogs plugin插件,安装后在具体项目的配置中就可以看到Gogs Webhook的选项,每个选项的具体作用可以点击?按钮查看

image-20230301105921866

另外,在构建触发器中会多出一个选项:Build when a change is pushed to Gogs(在Gogs发生推送事件的时候执行构建),该选项需要勾上才能触发构建。

image-20230301110226596

安装并配置好自动构建后,我们需要手动获取API的地址,具体格式如下

http(s)://<< jenkins-server >>/gogs-webhook/?job=<< jobname >>

注意:如果项目时在某个文件路径下,那在<< jobname >>前面还得跟上文件名,如

http://192.168.7.201:8888/user/somebody/my-views/view/all/job/某某项目/job/web/

以上是某个项目所在的路径,是一个在“某某项目”文件夹下的名为“web”的项目,那么这个项目所对应的API应该是:

http://192.168.7.201:8888/gogs-webhook/?job=某某项目/web

Gogs Web Hook

在Gogs的代码仓库中进入到仓库设置 > 管理Web钩子,点击添加新的Web钩子,类型选择Gogs,然后将刚刚的推送地址张贴到推送地址中:

image-20230301112019271

然后点击添加钩子,注意,此时可能存在报错:推送 URL 被解析到默认禁用的本地网络地址。,如图:

image-20230301112202974

这是因为Gogs默认禁止访问本地网络地址,需要去修改app.ini的配置文件,添加参数 LOCAL_NETWORK_ALLOWLIST 后重启服务。

#多个地址用逗号隔开,localgogs为本地配置的域名
LOCAL_NETWORK_ALLOWLIST = 192.168.7.201,192.168.1.110,localgogs

app.ini文件所在路径:

image-20230301114913739

#app.ini

...
[security]
INSTALL_LOCK = true
SECRET_KEY   = otqYKm9E34JWVah
LOCAL_NETWORK_ALLOWLIST=192.168.7.201,192.168.1.110,localgogs

修改配置,重启容器后再保存即可成功,保存后可以点击测试推送

image-20230301115354264

如果推送成功了,并且jenkins也自动执行构建了,那么就说明成功了。另外,在测试推送的时候也可以点击具体的推送记录查看请求内容与响应内容。

如果推送成功了,并且jenkins也自动执行构建了,那么就说明成功了。另外,在测试推送的时候也可以点击具体的推送记录查看请求内容与响应内容。

### JenkinsGogs集成使用教程 #### 三级标题:JenkinsGogs集成概述 为了实现持续交付(CD),通常会将版本控制系统如Gogs与CI/CD工具如Jenkins相结合。通过这种方式,每当向Gogs仓库提交更改时,都会触发Jenkins中的自动构建过程[^2]。 #### 三级标题:准备阶段 确保已经安装并运行了JenkinsGogs实例。对于Jenkins而言,需将其配置好以便支持Maven项目的编译打包工作;而对于Gogs,则要保证其能正常接收来自外部系统的请求,并具备创建Webhooks的能力[^3]。 #### 三级标题:Jenkins端设置 在Jenkins中新建一个多分支Pipeline工程来管理不同分支上的代码变更。进入该工程的配置页面,在“Source Code Management”部分选择Git作为SCM方式,并指定远程仓库URL指向自己的Gogs库地址。接着定义用于身份验证的凭证信息(比如SSH密钥)。最后,在“Build Triggers”选项里勾选允许由外部服务调用来启动构建的任务开关。 #### 三级标题:Gogs Webhook配置 转到Gogs平台上对应项目的Settings界面下找到Webhooks菜单项。点击Add webhook按钮新增一条记录,输入先前获取到的有效回调链接——即形似`http://<jenkins-server>/github-webhook/`这样的路径。注意这里的协议头应根据实际情况调整为HTTPS或其他形式。另外还需设定Payload format为JSON格式以匹配Jenkins期望接收到的数据结构。 #### 三级标题:测试连接有效性 完成上述两步之后就可以尝试推送一次新的commit至关联好的Gogs repo看看能否成功激活远端Jenkins job了。如果一切顺利的话应该很快就能看到相应的build log出现在控制台输出区域里面。 ```bash git commit -am "Test integration between Gogs and Jenkins" git push origin master ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值