当前位置: 首页 > article >正文

CI/CD—GitLab钩子触发Jenkins自动构建项目

 GitLab钩子简介:

项目钩子

项目钩子是针对单个项目的钩子,会在项目级别的特定事件发生时触发。这些事件包括代码推送、合并请求创建、问题创建等。项目钩子由项目管理员或具有相应权限的用户进行配置,仅对特定项目生效。

  • 使用场景:实现项目的自动化构建、测试和部署,例如在代码推送时自动触发 CI/CD 流水线,或者在合并请求创建时自动通知相关人员进行审查。
  • 配置步骤
    1. 进入项目的 Settings(设置) -> Webhooks(Web 钩子)页面。
    2. 输入要触发的目标 URL,该 URL 通常是一个接收并处理事件的服务器地址。
    3. 选择要监听的事件类型,如 Push events(代码推送事件)、Merge request events(合并请求事件)等。
    4. 可以根据需要设置其他参数,如触发条件、SSL 验证等。
    5. 点击 Add webhook(添加 Web 钩子)保存配置。

钩子工作原理

当配置好的事件在 GitLab 中发生时,GitLab 会向配置的目标 URL 发送一个 HTTP 请求,请求中包含了事件的详细信息,如事件类型、相关的项目信息、用户信息等。接收方服务器可以根据这些信息执行相应的操作,例如调用脚本进行代码部署、发送通知邮件等。

 一、在Jenkins上配置构建触发器

1、在Jenkins上构建触发器

1.1、选择之前创建的maven项目的配置

1.2、选择构建触发器

1.3、触发远程构建 (例如,使用脚本) --> 填写身份验证令牌

1.4、根据提示的url信息在浏览器上输入相关的url相当与发送一次POST请求
JENKINS_URL/job/first-test/build?token=TOKEN_NAME 或者 /buildWithParameters?token=TOKEN_NAME

 

浏览器上访问:http://192.168.72.131:8080/job/first-test/build?token=test@1234,就相当于自动提交了一次POST请求自动去构建first-test项目

1.5、测试结果

测试机器上可以看出构建的结果

2、安装Build Authorization Token Root插件

安装背景以及插件的作用

上述步骤请求是在Jenkins平台正常登录的情况下进行的,所以在浏览器上访问:http://192.168.72.131:8080/job/first-test/build?token=test@1234 不需要登录,如果换成其他的浏览器或者Jenkins长时间不登录再执行此url时就会弹出登录页面。

现象:

安装Build Authorization Token Root插件就可以解决此问题,相当于会进行匿名登录。

 

2.1、安装Build Authorization Token Root免登录的插件

2.2、安装插件文档中的介绍修改url

改造前:http://192.168.72.131:8080/job/first-test/build?token=test@1234

改造后:http://192.168.72.131:8080/buildByToken/build?job=first-test&token=test@1234

2.2.1、测试

在浏览器上输入:http://192.168.72.131:8080/buildByToken/build?job=first-test&token=test@1234之后能正常访问,而且能够自动触发构建。

二、GitLab上创建自动构建钩子

1、GitLab项目钩子创建步骤

1.1、进入项目的 Settings(设置) --> Webhooks
1.2、输入要触发的目标 URL,该 URL 通常是一个接收并处理事件的服务器地址
1.3、选择要监听的事件类型,如 Push events(代码推送事件)、Merge request events(合并请求事件)等

2、GitLab不允许本地请求报错处理方法

在GitLab上点击创建后报错:Urlis blocked: Requests to the local network are not allowed不允许本地请求

2.1、以管理员身份登录 GitLab

2.2、进入 Admin Area(管理区域)

2.3、选择 Settings(设置) -> Network(网络)

2.4、在 Outbound requests(出站请求)部分,找到 Allow requests to the local network from web hooks and services 选项,将其勾选

2.5、点击 Save changes(保存更改)

2.6、重新进行添加并保存

三、GitLab上进行代码合并触发Jenkins自动构建测试

1、配置好之后先在GitLab上根据系统提交的步骤进行测试

2、提交并合并代码查看GitLab钩子被触发的情况

2.1、修改代码

2.2、提交代码

2.3、测试
2.3.1、查看测试服务器上前端内容

2.3.2、合并代码

2.3.3、审核人不点击比准看是否能触发自动构建

查看Jenkins日志已经触发构建 


查看测试服务器前端内容

虽然审核人没有批准代码合并但是已经触发Jenkins自动构建!!!

2.3.4、审批人审核通过查看是否再次触发构建

浏览器上进行验证

审核人批准代码合并再次触发Jenkins自动构建!!!

结论:   

   采用GitLab钩子触发自动构建的方法在实际的开发环境的某些场景下并不适用,因为代码合并审核人并没有审核通过,在合并过程中就已经多次触发了自动构建,这样在实际的开发环境中会对测试节点的资源造成很大的浪费,同时也影响到测试环境的稳定性。

原文地址:https://blog.csdn.net/dghfttgv/article/details/146147419
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/584924.html

相关文章:

  • 某银行 U位资产管理系统安全合规整改项目案例及分析
  • Penguins“Collect to Earn”新标杆,开启Web3.0与AI融合未来
  • kkFileView文件预览组件部署说明
  • Trae与Builder模式初体验
  • 基于异构特征融合与轻量级集成学习的软件漏洞挖掘方案设计与Python实现
  • maxkb安装部署
  • Zookeeper与Kafka学习笔记
  • 面试高频#LeetCode#Hot100-字母异位词分组
  • docker拉取 sentinel 并启动
  • 技术聚焦:Debezium 如何将数据库数据精准注入 Kafka
  • 探索移动端开发新可能: Android Termux环境下部署MariaDB数据库
  • 智慧锂电:开启能源新时代的钥匙
  • Web网页制作之爱家居的设计(静态网页)
  • springboot3 webflux
  • 前端构建工具进化论:从Grunt到Turbopack的十年征程
  • ChromeOS 133 版本更新
  • 游戏引擎学习第156天
  • Manus 超强开源版本,OpenManus + QwQ-32B 实现 AI Agent
  • 投资早报 3.13
  • 【spring】springAOP