在PasteSpider中使用gitee的webhook实现类似Jenkins的CI/CD持续部署

news2024/11/14 15:40:53

准备事宜

        1.已经在PasteSpider中配置好了相关的项目和服务

        2.在gitee中有创建对应的代码仓库

实现原理

        1.webhook是时下非常流行的一个推送模式,webhook其实就是往某一个特定的地址推送消息,这样可以避免频繁的轮询,在事件发生后的第一时间告知某一个目标!

        2.开发者往gitee的源码仓推送一条升级的时候,基于配置会推送一个信息到PasteSpider中,如果符合配置,则会执行构建并持续部署,也就是升级你服务器上的服务!

        3.工作目录,基于配置,默认是宿主服务器上的/spider/,然后是服务的类型,比如构建类型,则为/spider/publish/,如果为静态的则为/spider/static/,后面是项目代码和服务代码,比如商城项目(代码为:shop),的服务(代码为:api),如果这个服务配置的类型为发布模式,则他的工作目录就是/spider/publish/shop/api,服务升级的时候,就会到这个目录执行docker build ,所以webhook值要把最新的项目发布文件覆盖到这个目录即可!

配置接收端

        由上可知,消息发生后,接收端在PasteSpdier中,以下以我的项目为例,打开PasteSpider的后台菜单,“项目信息”-“GIT/SVN”,大概如下图:

点击右侧主作业区域左上方的“+”新增一条规则

如上图,有几个要点要注意

1.哪个服务,表示接收到消息后,要对你PasteSpider中的哪个服务执行升级操作

2.克隆编译命令,这个里面填写的命令是linux上执行的,一行一条命令,目的是从对应的源码仓库拉取代码,然后编译,发布,注意要发布到PasteSpider的工作目录中!

        a.一个命令一行,行行之间无关,所以目录要用全路径

        b.命令是在宿主服务器上执行的,所以没有的命令要自己去安装,比如git

        c.编译发布,要看你的开发语言,以.netcore为例,则需要安装dotnet sdk才可以编译发布!

        d.至于配置文件等,需要你使用这个命令自己实现备份,覆盖等!

3.源码管理方式,就是源码是哪个类型的,不同的源码仓库使用的签名是不一样的,对应的路径也不一样!

4.项目名称,这个不是乱填写,要到对应的仓库中去看,在如下位置:

5.验证密钥,其实就是消息校验的签名,这样可以防止别人通过接口随意的给你推送消息,需要和对应的gitee后台的配置一致,比如:

6.私有仓库,这个要看你的PasteSpider是否配置了,而且这个服务是否启用了私有仓库模式!

7.升级规则,这个是防止所有的源码提交都执行升级操作,这里采用的是关键字模式,也就是提交源码的时候填写的备注的前缀,我个人是习惯用update,也就是说如果我本次需要升级服务器上的服务,则提交源码的时候,我用update打头,后面在填写我升级的内容即可!

Gitee中的配置

        找到你的gitee中的项目,打开配置项目,如上图配置,注意修改你的URL,需要为你的PasteSpider的访问地址,然后是签名密钥,Push,激活等,配置好了后,就可以开始测试了!

测试上线

        然后找到对应的项目源码,推送提交,然后可以去查看下你的PasteSpider的日志,推送的信息目前是打印到Warning层级!

        

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

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

相关文章

Microsoft Edge 使用方法与秘诀概览

目录 ​编辑引言 Microsoft Edge 功能与技巧概览 掌握这些设置技巧,让 Edge 浏览器的体验更干净 1. 使用阅读视图 2. 开启广告过滤 3. 管理扩展 4. 个性化新标签页 5. 使用网页截图 6. 清理浏览器缓存 7. 管理启动设置 8. 自定义地址栏建议 9. 使用内置笔…

OLAP引擎之Druid

Apache Druid 简介 Apache Druid 是一个开源的、分布式的实时分析数据库,专为大规模数据的快速查询和实时分析而设计。Druid 将数据存储、索引和查询处理功能结合在一起,支持对流数据和批量数据进行快速的、低延迟的分析查询。它特别适用于需要高并发、…

C语言内存操作函数

目录 一. C语言内存操作函数 1. memcpy的使用和模拟实现 2. memmove函数 3. memset函数 4. memcmp函数 一. C语言内存操作函数 随着知识的不断积累,我们所想要实现的目标程序就会更加复杂,今天我们来学习一个新的知识叫做C语言内存操作函数&#x…

eNSP 华为交换机生成树协议

华为交换机生成树协议 生成树协议原理与作用 选举一个交换机作为根网桥(生成树的根),计算出到其他所有交换机的最佳路径,把备用路径的端口设为堵塞状态(逻辑上关闭备用路径),当最佳路径故障再…

制造企业为什么要数字化转型?面临哪些困难?

如何界定制造企业 制造业(Manufacturing Industry)是指机械工业时代利用某种资源(物料、能源、设备、工具、资金、技术、信息和人力等),按照市场要求,通过制造过程,转化为可供人们使用和利用的…

01:电容的什么,各类电容的优缺点

1.电容是什么? 电容是由两块不连通的导体,已经中间的不导电材料组成 电容结构: 1.2电容的容量计算公式 C ε s d \displaystyle\frac{εs}{d} dεs​ 1.3常见电容的种类 1.4各类电容的特点

【大模型从入门到精通31】开源库框架LangChain RAG 系统中的问答技术1

这里写目录标题 引言问答与语言模型一般流程整合方法 通过高级问答技术增强 RAG 系统利用 VectorDB 进行文档检索实现问答链初始化语言模型配置 RetrievalQA 链 问答实战 引言 检索增强生成 (RAG) 系统已经革新了我们与大型数据集互动的方式,使得开发高度复杂的聊天…

深入探索MyBatis的动态代理模式

文章目录 深入探索MyBatis的动态代理模式引言一、 MyBatis动态代理概述动态代理的优势 二、准备工作文件存放结构视图1、Mybatis的主配置文件 mybatis-config.xml2、db.properties文件:3、mybatis-config.xml引用properties文件: 三、MyBatis动态代理的实现原理1. Mapper接口定…

基于STM32F103的FreeRTOS系列(十)·消息队列的使用详细介绍以及代码编写

目录 1. 消息队列简介 1.1 概念 1.2 数据存储 1.3 阻塞机制 1.3.1 出队阻塞 1.3.2 入队阻塞 1.4 操作示意图 1.4.1 创建队列 1.4.2 向队列发送第一个消息 1.4.3 向队列发送第二个消息 1.4.4 从队列读取消息 1.5 消息队列的控制块 2. 常用API函数介绍…

android13顶部状态栏里面调节背光,不隐藏状态栏面板

总纲 android13 rom 开发总纲说明 目录 1.前言 2.代码分析 3.修改方法 4.编译运行 5.彩蛋 1.前言 android13顶部状态栏里面调节背光,这个时候状态栏面板会被隐藏掉,有些需求就需要不隐藏这个面板。 2.代码分析 查找亮度条属性 id/brightness_slider ./frameworks/b…

Vue 3 + 天地图 + D3.js 绘制行政区划

​🌈个人主页:前端青山 🔥系列专栏:组件封装篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来组件封装篇专栏内容:组件封装-天地图 目录 引入天地图 API 初始化地图 引入 D3.js 加载行政区划数据 添…

k8s高版本(1,28)部署NodePort模式下的ingress-nginx的详细过程及应用案例

文章目录 前言环境ingress安装应用案例(ingress-http案例: 基于名称的负载均衡) 前言 这个是nodeport模式下的,如果需要loadbalancer模式下的,看看博主下面以前的博客 链接: k8s学习–负载均衡器matelLB的详细解释与安装 链接: k8s学习–ing…

机器学习 之 使用逻辑回归 进行银行贷款预测(请帮忙点点赞谢谢,这对我很重要)

目录 一、逻辑回归简介 逻辑回归的基本原理 线性组合: Sigmoid函数: 二、实战案例 1.导入数据 2.准备环境 混淆矩阵的基本概念 混淆矩阵的作用 3.加载数据 4.数据预处理 什么是标准化? 标准化的计算公式 划分数据集 5.逻辑回归模…

19.缓存的认识和基本使用

缓存介绍 缓存是数据交换的缓冲区Cache,是临时存储数据的地方,一般读写性能较高。 数据库的缓存就是建立索引。 缓存的作用 1.降低后端负载。 2.提高读写效率,降低响应时间。 缓存的问题 1.保证数据的一致性。 2.增加代码维护成本。解…

Kafka运行机制(二):消息确认,消息日志的存储和回收

前置知识 Kafka基本概念https://blog.csdn.net/dxh9231028/article/details/141270920?spm1001.2014.3001.5501Kafka运行机制(一):Kafka集群启动,controller选举,生产消费流程https://blog.csdn.net/dxh9231028/arti…

Qt 0816作业

一、思维导图 二、将day1做的登录界面升级优化【资源文件的添加】 三、在登录界面的登录取消按钮进行一下设置 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到…

C++ | Leetcode C++题解之第350题两个数组的交集II

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {sort(nums1.begin(), nums1.end());sort(nums2.begin(), nums2.end());int length1 nums1.size(), length2 nums2…

函数递归VS操作符深入?

1>>前言 函数递归函数递归&#xff0c;当小白听到这样的词会感到无比陌生&#xff0c;请不要惊慌&#xff0c;这是正常的&#xff0c;以至于都不是很经常用到&#xff0c;但是它的算法&#xff0c;它的思想是值得我们深入思考的。还有一些复杂操作符&#xff0c;如按位与…

【原创】java+swing+mysql共享充电宝管理系统设计与实现

个人主页&#xff1a;程序员杨工 个人简介&#xff1a;从事软件开发多年&#xff0c;前后端均有涉猎&#xff0c;具有丰富的开发经验 博客内容&#xff1a;全栈开发&#xff0c;分享Java、Python、Php、小程序、前后端、数据库经验和实战 文末有本人名片&#xff0c;希望和大家…

PyTorch之TensorBoard使用

接回上一篇&#xff1a;PyTorch深度学习框架-CSDN博客 在学习这篇之前建议先按照上一篇搭建好整个PyTorch环境 然后这一篇讲怎么用TensorBoard&#xff0c;这个玩意是Tensorflow官方推出的一个可视化工具&#xff0c;当使用Tensorflow训练大量深层的神经网络时&#xff0c;我们…