Jenkins集成GitLab Webhooks自动化构建

news2025/1/17 21:34:22

Jenkins+GitLab Webhooks自动构建项目

  • 1 构建步骤
    • 1.1 Jenkins中设置构建触发器
    • 1.2 Build Authorization Token Root插件安装
    • 1.3 GitLab配置Webhooks
  • 2 测试webhooks
    • 2.1 测试推送事件
    • 2.2 测试合并请求事件
    • 2.3 代码修改提交测试

1 构建步骤

1.1 Jenkins中设置构建触发器

  这里先随便写个令牌。

image-20230111171453833

  这里先随便写个令牌。我们浏览器直接访问:http://192.168.159.51:8080/job/first/build?token=123123

  这里先随便写个令牌。通过观察控制台可以发现,这会自动触发构建任务。但是如果我们换个浏览器或者用PostMan的话会提示我们需要登录。

  这里先随便写个令牌。这里需要安装个插件,可以让我们启用token之后免登录。

1.2 Build Authorization Token Root插件安装

  在Jenkins得Plugin Manager的可选插件中搜索Build Authorization Token Root
image-20230111171321172

image-20230111171403507

  安装完成之后看下文档中的写法:

image-20230111172316932

  这个时候用PostMan测试,不过格式按照上图做修改

http://192.168.159.51:8080/buildByToken/build?job=first&token=123123

image-20230111172405047

  点击send之后,可以发现,确实触发了构建任务。

image-20230111172440367

  控制台也显示了正在构建的过程
image-20230111172451250

1.3 GitLab配置Webhooks

  接下来我们把这个地址放到GitLab上,每次提交代码的时候自动触发任务构建就行

image-20230111172711923

  URL输入如下链接:

http://192.168.159.51:8080/buildByToken/build?job=first&token=123123

image-20230111172924700

  触发来源先选择推送事件合并请求事件

image-20230111172941753

  取消SSL验证,我们现在还没有用到https

image-20230111173049505

  报了个错,不要慌,都是节目效果

image-20230111173019869

  意思是本地的Webhooks请求是不允许的,那我们设置下让它允许就行了。

  Gitlab中切换到管理员选项

image-20230111173144413

  设置=>网络
image-20230111173155459

  找到出站请求,勾选允许来自web hooks和服务对本地网络的请求

image-20230111173213725

  再次添加webhooks

image-20230111173259936

image-20230111173328253

  可以看到,webhooks添加成功了。

2 测试webhooks

2.1 测试推送事件

  在webhook中点击测试选择推送事件
image-20230111173513723
  观察Jenkins是否执行构建
image-20230111173747129

2.2 测试合并请求事件

  测试中选择合并请求事件
image-20230111173823627
  观察Jenkins是否执行构建
image-20230111173840517

2.3 代码修改提交测试

  简单修改下业务类代码,如下
image-20230111174031179

  代码push到gitlab服务器

image-20230111174113238

  观察Jenkins是否正在执行构建任务

image-20230111174200033

image-20230111174220653

  这个时候jenkins用的是gitlab中main分支下的代码,并不是我们最新的代码,所以我们还要合并下代码之后自动执行的构建任务才是我们刚刚修改的。

  创建合并请求

image-20230111174434600
image-20230111174557125

  点击合并之后观察Jenkins是否正在执行构建任务

image-20230111174626749

  再访问业务请求,看是否成功

image-20230111174807063

  可以看到,这次用的是我们最新的代码。

  但是还有个问题,我们每次推送和发起合并但是没有真正执行合并的时候(也就是合并时会执行多次构建),Jenkins也会执行构建,所以这块有点问题,还可以改。

  先取消掉webhooks中推送时间触发选项

image-20230111175025990

  再次修改下代码提交测试,这次应该不会触发构建了。

image-20230111175254155

image-20230111175325426

  遗留问题:只要创建了合并任务,即使没有执行审批,就会执行构建,这个后面再说。

  关于GitLab钩子自动构建项目就先介绍到这里,怎么样,屌不屌?还有其他的构建方式我得再研究下。上面有的报错是节目效果,否则一下子成功了,后面碰到报错就懵了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/155706.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Markdown与DITA比较

Markdown是一种轻量级标记语言,创始人为John Gruber。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的HTML文档。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。由于Markdown的轻量化、易读易写特性,并且对于图片&am…

第一章Mybatis基础操作学习

文章目录MyBatis简介MyBatis历史MyBatis特性和其它持久化层技术对比搭建MyBatis开发环境创建maven工程创建MyBatis的核心配置文件创建mapper接口创建MyBatis的映射文件通过junit测试功能加入log4j日志功能不带参数的增删改查Mapper接口的编写对应Mapper接口的xml文件编写核心配…

【Python基础】如何使用pycharm

1、设置Python 解释器 在任何项目,第一步就是设置Python 解释器,就是那个Python.exe 在File->Setting->Projec: xxx 下找到 Project Interpreter。然后修改为你需要的 Python 解释器。注意这个地方一定要注意的是:在选择 Python 解释…

Dubbo 学习笔记

Dubbo 学习笔记 1.基础知识 1.1 分布式基础理论 1.1.1 什么是分布式系统? 《分布式系统原理与范型》定义: 分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统分布式系统(distributed system&#xf…

java基于ssm蛋糕店蛋糕商城蛋糕系统网站源码

简介 java使用ssm开发的蛋糕商城系统,用户可以注册浏览商品,加入购物车或者直接下单购买,在个人中心管理收货地址和订单,管理员也就是商家登录后台可以发布商品,上下架商品,处理待发货订单等。 演示视频 …

HTML贪吃蛇游戏源码(穿墙)

演示 完整HTML <!DOCTYPE html> <html> <head><meta charset"utf-8"><title><・)))><<</title><link rel"shortcut icon" href"${ctx}/image/snake_eating.png"><meta name"ref…

中科大2006年复试机试题

中科大2006年复试机试题 文章目录中科大2006年复试机试题第一题问题描述解题思路及代码第二题问题描述解题思路及代码第三题问题描述解题思路及代码第四题问题描述解题思路及代码第五题问题描述解题思路及代码第六题问题描述解题思路及代码第一题 问题描述 求矩阵的转置。 给…

three.js入门篇6之 环境贴图、经纬线映射贴图与高动态范围成像HDR

目录013-1 环境贴图013-2 经纬度映射贴图与HDR013-1 环境贴图 就是把周边的环境&#xff0c;贴在物体的表面之上 注意&#xff1a;px&#xff1a;x轴正向&#xff0c;nx&#xff1a;x轴负向 import * as THREE from "three" // console.log(main.js,THREE);// 导入…

06什么是Fabless?什么是IDM?

Fabless是SIC&#xff08;半导体集成电路&#xff09;行业中无生产线设计公司的简称&#xff0c;只搞设计的无晶圆厂半导体公司&#xff0c;生产交给像台积电这样的代工厂去做。 IDM是整合元件制造商&#xff0c;像英特尔这样既设计又制造的就叫IDM&#xff0c;因为规模大&…

对于字节,16进制,2进制, 0xFF,位移的一些杂记

1.普通字符串95 对应的16进制的展示&#xff0c;使用工具查看如下图 下图为普通字符串 下图为95对应的16进制 95对应的16进制字符串为39 35》39代表一个字节 35代表另一个字节 &#xff08;一个字节是由两位16进制字符串组成&#xff0c;比如39或35&#xff09; 1个字节对应…

select for update加了行锁还是表锁?

最近在开发需求的时候&#xff0c;用到了select......for update。在代码评审的时候&#xff0c;一位同事说 &#xff0c;唯一索引一个非索引字段&#xff0c;是否可能会锁全表呢&#xff1f;本文将通过9个实验操作的例子&#xff0c;给大家验证select......for update到底加了…

迁移环境时,忘记私钥证书密码怎么办?

知行之桥的版本在进行不断更新&#xff0c;相较之前的版本而言&#xff0c;知行之桥每一次更新的版本&#xff0c;无论在操作还是功能亦或是便利性上都有更好的优势&#xff0c;因此不少企业会在新版本更新之后果断选择新的版本&#xff0c;企业选择版本更新之后&#xff0c;需…

He3 新版上新

系统功能更新 支持拖动工具&#xff0c;调整位置 支持置顶 支持自定义分类 新增工具 Paseto 生成器 2. 文本分析 JSON 转 PHP&#xff0c;YAML 转 PHP UTF7 编码、UTF7 解码 6. UTM 生成器 CSS 边框圆角生成器 CSV 类转换工具&#xff0c;目前支持 CSV 与 Markdown、HTML、JS…

什么是无代码ITSM工具

拥有强大 ITSM 团队的企业已经能够生存下来&#xff0c;并且在某些情况下在整个大流行期间表现出色。成功的 IT 团队以其在日常运营中断时快速恢复的能力而闻名。 当您需要重新组织服务交付流程时&#xff0c;ITSM 平台可以减少工程工作量&#xff0c;这对于制定弹性 ITSM 战略…

Python学习笔记——元组

Python将不能修改的值称为不可变的&#xff0c;而不可变的列表被称为元组。定义元组元组创建只需要在括号中添加元素&#xff0c;并使用逗号隔开即可。元组使用小括号 ( )&#xff0c;列表使用方括号 [ ]。定义元组后&#xff0c;就可以使用索引来访问其元素&#xff0c;就像访…

ansible作业二

ansible匹配自定义路径清单文件 查看当前匹配的清单文件路径 [rootserver ~]# ansible --version ansible [core 2.13.5]config file /etc/ansible/ansible.cfg --- 默认配置文件configured module search path [/root/.ansible/plugins/modules, /usr/share/ansible/plugin…

力扣(LeetCode)1150. 检查一个数是否在数组中占绝大多数(C++/Python3)

遍历 直观思考&#xff0c;一次遍历数组&#xff0c;计数 target 。用 target 出现次数和数组长度的一半做比较&#xff0c;即可得到答案。 class Solution { public:bool isMajorityElement(vector<int>& nums, int target) {int cnt 0;for(auto &x:nums)if(…

7、Servlet——Servlet核心接口和类、创建Servlet的三种方式

目录 一、Servlet核心接口和类 1、Servlet接口 2、GenericServlet抽象类 3、HttpServlet类 二、创建Servlet的三种方式 1、实现Servlet接口 2、继承GenericServlet抽象类 3、继承HttpServlet类 三、web.xml中其他配置 1、启动优先级&#xff1a; 2、url-pattern定…

【SpringCloud02】订单-支付微服务模块(支付模块构建)

1.微服务cloud整体聚合父工程Project New Project 聚合总父工程名字 Maven选版本 工程名字 字符编码 注解生效激活 Java编译版本选8 File Type过滤 2.父工程POM 2.1Pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi&quo…

docker中MySQL忘记登录密码找回方法

查看docker启动列表 docker ps 进入启动的mysql容器中 docker exec -it mysql /bin/bash 修改mysql配置文件 vim /etc/mysql/conf.d/docker.cnf 在最后添加 skip-grant-tables 如果出现命令没找到&#xff0c;则需要安装。 依次使用以下命令安装vim apt-get update apt…