Jenkins是一个流行的开源CI/CD工具,可以与Git等版本控制系统集成,实现自动构建、测试和部署。Webhook是一种机制,可以在Git仓库中设置,在代码提交或合并请求时触发Jenkins构建任务,以完成自动化部署。
实操
设备信息
|---------|-----------------|-------|
| jenkins | 192.168.231.241 | 6核12G |
| gitlab | 192.168.231.238 | 4核8G |
1. gitlab端远程仓库信息

2. 在Jenkins中创建一个新的构建任务。

3. 配置构建任务的参数,如源代码库地址、分支


选择gitlab远程仓库的URL
Credentials需要手动添加登录gitlab的用户及密码


观察远程从仓库的分支,如果是master就改成master

4. 构建触发器

接着

接着点击高级


点击Generate,生成秘密令牌,在gitlab的web端webhook需要用到
5. 在Git仓库中配置Webhook,将Webhook的URL设置为Jenkins构建任务的URL,并选择触发来源,如推送事件,代码提交、合并请求等。

底下最后一行有SSL验证,点击取消
令牌是之前在jenkins构建触发器,生成的秘密令牌
URL是在jenkins构建触发器是显示的

保存完后 点击测试 出现200则证明添加成功

错误提醒:如果出现选择webhook失败

解决办法:打开管理中心,网络设置

6.生成shell测试
在jenkins网页端

7. 开始构建测试,只要修改远程仓库的代码,jenkins端即自动构建



解析
webhook,避免了传统获取数据的拉的方式。不用本地不断用轮询的方式向对方服务器发送请求来知晓是否已经处理完成。而是给对方服务器提前设置好了hook url。这样地方在处理完成后就会给这个url发送请求结果了。采取的是推数据的方式。
webhook适用于开发测试环境,提交一次代码就构建一次,不建议在生产环境