Git仓库的WebHook本质上是在特定事件发生时触发一个Web请求。
所以本文将描述如何通过Web URL触发 Jenkins构建流程。

前置

  • 本文假设你已安装Jenkins并有一个正常配置的 Job 以及远程仓库

0x01 Jenkins User Token设置

通过Web请求访问Jenkins服务需要携带连接凭据,在Jenkins Web控制台中点击 用户头像 > Security > 为User添加Token
Add Token
创建后拷贝保存

0x02 仓库设置

各大代码托管平台的WebHook设置基本相同,这里以Gitea为例:
仓库 > 设置 > Web钩子 > 添加Web钩子
WebHook Setting
主要包含以下几个设置项:

  • 目标URL:用于触发Jenkins 构建操作的Web请求URL
  • HTTP方法:请求发送方式 GETPOST (Jenkins 要求 POST
  • 分支过滤:事件发生再哪些分支上时触发此钩子(你要给哪个分支设置Web钩子)
  • 触发条件:发送什么事件时触发
  • 授权标头 | 密钥 :暂时用不上,不赘述。

以上各个部分用法说明:

  • 目标URL:
    Jenkins 推荐格式为:http://<user_neme>:<user_token>@<server_ip>:<server_port>/job/<job_name>/build
    例如假设Jenkins 部署在 192.168.10.2:8080 上且存在一个TestBuild 构建任务,在步骤 0x01 中我们为用户Admin 创建了Token :ABC123
    那么此处的 URL 就是
http://Admin:ABC123@192.168.10.2:8080/job/TestBuild/build
  • HTTP方法:Jenkins 要求必须为POST方法,在浏览器中测试URL时会提示你修改为POST请求,点击Proceed可以自动转换。
  • POST内容类型:application/x-www-form-urlencoded ,浏览器会将该类型中表单数据转换为 URL 可传输的格式。
  • 分支过滤 :按需填写
  • 触发条件 :按需填写

0x03 测试

  • 代码平台测试
    代码托管平台会在WebHook创建页面提供测试按钮,点一下看看能否触发构建。
  • 浏览器
    将URL直接粘贴到浏览器也可测试,在警告页面点击Proceed将GET转换为POST即可
    浏览器测试
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐