2024最新 Jenkins + Docker 实战教程(五)- 配置Gitee Webhooks实现自动构建部署

news2024/11/16 1:17:55

在这里插入图片描述

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志
🎐 个人CSND主页——Micro麦可乐的博客
🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战
🌺《RabbitMQ》本专栏主要介绍使用JAVA开发RabbitMQ的系列教程,从基础知识到项目实战
🌸《设计模式》专栏以实际的生活场景为案例进行讲解,让大家对设计模式有一个更清晰的理解
💕《Jenkins实战》专栏主要介绍Jenkins+Docker+Git+Maven的实战教程,让你快速掌握项目CI/CD,是2024年最新的实战教程
如果文章能够给大家带来一定的帮助!欢迎关注、评论互动~

Jenkins + Docker + Git + Maven 实战教程(五)- 配置Gitee Webhooks实现自动构建部署

  • 前言
  • 什么是Webhooks
  • Webhooks的工作原理
  • 开始配置Jenkins
  • 开始配置Gitee
  • 结语

前言

上一章节中我们已经学习从自己编写简单SpringBoot项目(根目录下编写Dockerfile)上传至Gitee,最后通过Jenkins实现自动化部署,可能有小伙伴会问,能不能我在提交代码至仓库的时候Jenkins就帮我们部署呢? 答案是肯定的,今天我们就来讲讲Webhooks
在这里插入图片描述

什么是Webhooks

Webhooks是一种基于HTTP协议的回调机制。当特定事件(如代码推送、Pull Request等)发生时,源系统会向预先配置的URL发送一个HTTP请求,以通知目标系统进行相应的操作。在CI/CD流程中,Webhooks常用于触发Jenkins构建任务。

Webhooks的工作原理

当代码仓库(如GitHubGitee)中的某些事件发生时,这些系统会向配置好的Jenkins URL发送HTTP请求。Jenkins接收到请求后,根据配置的JobPipeline,自动执行相应的构建、测试和部署任务。

开始配置Jenkins

以下以Gitee为例,详细讲解如何配置Webhooks。

首先我们在Jenkins控制台 -> 插件管理安装Gitee插件
在这里插入图片描述

安装好插件我们在 系统配置 设置一下Gitee,用于访问Giee仓库项目凭证
在这里插入图片描述
Gitee令牌生产如下
在这里插入图片描述
安装完成回到我们上一章节配置的 jenkins-demo 任务, 如果你还没了解上一章节的内容可以点击下方链接查阅:
2024最新 Jenkins + Docker 实战教程(四) - 编写自己的Springboot项目实现自动化部署

进入任务后 配置 -> 构建触发器 ,会发现多了一个Gitee Webhooks触发构建的选项
在这里插入图片描述
这里我们设置触发策略

Push: 仓库推送代码、推送 / 删除分支
Pull Request:新建、更新、合并

最后设置Gitee WebHook 密码
在这里插入图片描述

开始配置Gitee

通过 「仓库主页」->「管理页面」->「WebHooks」 添加 WebHook
在这里插入图片描述

URL:接收 WebHook 数据的 http 地址,Gitee会发送 Post 请求到这个地址。
WebHook 密码/签名密钥:保证安全以及识别数据来源
Tips:
URL以及密码根据刚才Jenkins中配置的Gitee Webhooks触发构建生成的信息填入

由于博主的教程是基于本机进行Jenkins的部署,即URL:
http://192.168.1.20:8080/gitee-project/jenkins-demo Gitee是无法POST到这个地址的,地址要填写公网的地址,或者有内网穿透工具也可以,这里我们需要借助一个 内网穿刺 工具来实现外网访问本地端口项目

大家可以参考 NeutrinoProxy,NeutrinoProxy(中微子代理) 一款基于solon、netty的内网穿透神器!同样也是基于Docker部署。

也可以使用一个在线免费的工具 : 访问地址 注册账号,申请免费通道

最后我们修改一下我们的SpringBoot代码,并提交仓库
在这里插入图片描述
观察Jenkins 构建历史,发现 Started by Gitee push by xxx 信息则证明通过Gitee WebHooks的推送实现了项目的自动化构建部署
在这里插入图片描述
最后访问一下我们的SpringBoot测试项目,测试成功!
在这里插入图片描述

结语

Webhooks是实现自动化构建与部署的重要工具,通过配置Webhooks,可以在代码仓库发生变更时,自动触发Jenkins执行相应的构建任务。通过本文介绍了Webhooks的使用方法,希望帮助小伙伴们更好地利用Webhooks提高开发效率和代码质量。

下一章节:2024最新 Jenkins + Docker 实战教程(六)- 配置邮箱接收构建通知

在这里插入图片描述

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

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

相关文章

Matlab:音频处理

用Matlab绘制一段音频信号在时域上的波形图,然后用低通滤波器滤掉噪音并再次绘制 1、导入音频文件 filename X:\1.mp3; % 替换为你的音频文件路径 [x, Fs] audioread(filename); 2、获取音频信号长度 len length(x); 3、计算时间轴 t (0:len-1) / Fs; 4、…

轻量音乐网站程序源码,在线音乐免费听歌

这是一个高品质的音乐共享和流媒体平台,用户可以在这个网站上免费在线听歌。这个轻量级的音乐网站程序源码,是您创建自己的音乐流媒体网站的最佳选择!它还支持制作插件,并且在更新后,您可以保留您的自定义设置。 下 载…

ASP+ACCESS基于WEB车辆管理系统

3.1 系统需求分析 该过程是个不断认识不断细化的过程。这里所要完成的工作是深入描述软件的功能和性能,确定软件的设计限制和软件同其他系统元素的接口细节,从而奠定软件的开发基础。 性能需求:该系统中,管理员模块只有管理人员…

重学java 40.多线程 — 死锁和线程状态

—— 24.5. 一、死锁 1.死锁介绍(锁嵌套就有可能产生死锁) 指的是两个或者两个以上的线程在执行的过程中由于竞争同步锁而产生的一种阻塞现象;如果没有外力的作用,他们将无法继续执行下去,这种情况称之为死锁 例: 两线程处于互相等待的状态&a…

SQL刷题笔记day2

1 题目 我的通过代码: select salary from salaries group by salary order by salary desc 复盘:考点是只显示一次——group by,逆序(从大到小)——order by...desc 2题目 我的错误代码: select empl…

【stm32/CubeMX、HAL库】嵌入式实验六:定时器(3)|外部脉冲计数

参考: 【【正点原子】手把手教你学STM32CubeIDE开发】 https://www.bilibili.com/video/BV1Wp42127Cx/?p13&share_sourcecopy_web&vd_source9332b8fc5ea8d349a54c3989f6189fd3 《嵌入式系统基础与实践》刘黎明等编著,第九章定时器&#xff0c…

若依微服务整合knife4j

在Spring Cloud的微服务架构下&#xff0c;每个微服务并不需要引入前端的ui资源&#xff0c;因此在每个微服务的Spring Boot项目下&#xff0c;引入ruoyi-common-swagger提供的starter即可。 1、在ruoyi-gateway网关模块下&#xff0c;把knife4j依赖资源引入 <!-- knife4j…

数据结构之时间复杂度和空间复杂度的相关计算

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构&#xff08;Java版&#xff09; 目录 时间复杂度 概念 大O的渐进表示法 相关练习 例1&#xff1a; 例2&#xff1a; 例3&am…

Redis篇 Redis的基本命令和Keys命令

get,set命令和Keys命令 一. get,set命令二. keys命令1.?2. *3. [^]4.[] 一. get,set命令 在博主给大家说明这两个最核心的命令之前,还需要大家知道, Redis的客户端和服务器交互,需要非常非常多的命令 但是大家需要全记住吗? 大家只需要记住基本命令.并且会查询其他命令即可. …

http项目改为/支持https的方案、无需修改后台代码

背景描述&#xff1a;原来的项目前后台都是http&#xff0c;现在某个服务要求前台必须使用https&#xff1b; 方案1&#xff1a;前台部署在https里&#xff0c;后面代码修改&#xff1b;但是微服务架构&#xff0c;后台工作量太大&#xff1b; 方案2&#xff1a;前台部署在ht…

PySODEvalToolkit 使用笔记

1. 克隆仓库 首先&#xff0c;克隆PySODEvalToolkit仓库到你的本地机器&#xff1a; git clone https://github.com/lartpang/PySODEvalToolkit.git2. 创建虚拟环境 cd PySODEvalToolkit conda create -n pysodeval python3.73. 安装依赖 pip install -r requirements.txt4…

文心一言 VS 讯飞星火 VS chatgpt (266)-- 算法导论20.2 1题

一、写出 PROTO-vEB-MAXIMUM 和 PROTO-vEB-PREDECESSOR 过程的伪代码。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 首先&#xff0c;让我们明确一下 PROTO-vEB-MAXIMUM 和 PROTO-vEB-PREDECESSOR 这两个过程是在介绍van Emde Boas树&#xff08;简称vEB树&a…

Vue - JavaScript基础学习

一、语言概述 JavaScript 中的类型应该包括这些&#xff1a; 1.数字&#xff08;默认双精度区别于Java&#xff09; console.log(3 / 2); // 1.5,not 1 console.log(Math.floor(3 / 2)); // 10.1 0.2 0.30000000000000004NaN&#xff08;Not a Number&#x…

深入用户内心:设计师如何通过可用性测试洞察用户需求

可用性测试是指让用户体验产品的原型或成品。设计师通过观察和分析用户的使用行为和感受&#xff0c;进一步合理地改进产品的设计方法。你可能会想知道我们可以用什么方法来测试可用性&#xff1f;随着互联网行业的快速迭代更新&#xff0c;可用性测试衍生出了许多类型和方法。…

Packet Tracer-HSRP+DHCPv4+VLAN间路由+以太通道综合实验

实验拓扑&#xff1a; 实验内容&#xff1a; VLAN及VLAN间路由的配置&#xff0c;以太通道的配置&#xff0c;STP的根调整&#xff0c;DHCPv4的配置&#xff0c;首跳冗余HSRP的配置。 实验最终结果&#xff1a; PC可以自动获取到DHCP-Server分配的IP地址&#xff0c;实现首跳…

【人工智能】模型性能评估

模型性能衡量介绍 混淆矩阵 混淆矩阵(Confusion Matrix&#xff09; TP(真阳性)&#xff1a;预测为阳性&#xff0c;且预测正确。 TN(真阴性)&#xff1a;预测为阴性&#xff0c;且预测正确。 FP(伪阳性)&#xff1a;预测为阳性&#xff0c;但预测错误&#xff0c;又称型一误…

widedeep模型简介

wide&deep模型 1.简介2.原理2.1 网络结构 3. 稀疏密集特征4.API和子类方式实现 1.简介 Wide and deep 模型是 TensorFlow 在 2016 年 6 月左右发布的一类用于分类和回归的模型&#xff0c;并应用到了 Google Play 的应用推荐中。wide and deep 模型的核心思想是结合线性模…

VBA_MF系列技术资料1-615

MF系列VBA技术资料1-615 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧&#xff0c;我参考大量的资料&#xff0c;并结合自己的经验总结了这份MF系列VBA技术综合资料&#xff0c;而且开放源码&#xff08;MF04除外&#xff09;&#xff0c;其中MF01-0…

Ubuntu切换内核版本

#安装内核安装工具 sudo apt-get install software-properties-common sudo add-apt-repository ppa:cappelikan/ppa sudo apt-get update sudo apt-get install mainline#安装指定内核版本(有些版本并不能安装成功) mainline install 5.14.10#更新GRUB配置 sudo update-grub#查…

go mod模式下,import gitlab中的项目

背景 为了go项目能够尽可能复用代码&#xff0c;把一些公用的工具类&#xff0c;公用的方法等放到共用包里统一管理。把共用包放到gitlab的私有仓库中。 遇到的问题 通过https方式&#xff0c;执行go get报了错误。 通过ssh方式&#xff0c;执行go get报了错误。 修改配置&am…