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

Linux:Jenkins:参数化版本回滚(6)

上几章我讲到了自动集成和部署

Linux:Jenkins全自动持续集成持续部署(4)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/w14768855/article/details/136977106


当我们觉得这个页面不行的时候,需要进行版本回滚,回滚方法我这里准备了两种

两者都是使用shell语句进行回滚

第一种是脚本调用git命令进行回滚

第二种是脚本调用

我现在环境是根据前几章的ci&cd搭建起来的,gitlab项目直接就部署好了


方法1

 

这里的参数你可以跟着我填上等会你就知道是做什么的了

#!/bin/bash
case $status  inhuigun) #注意大小写echo "-----本次操作为回滚,版本号为$version-----"git reset --hard $version
echo "-----回滚完成,打包中-----"  ;;*)exit
esac
scp /var/lib/jenkins/workspace/${JOB_NAME}/* root@192.168.6.5:/var/www/html
scp /var/lib/jenkins/workspace/${JOB_NAME}/* root@192.168.6.6:/var/www/html

 

 

 

在构建的时候直接填写gitlab上的历史数值就可以进行回滚


方法2

和方法1一样只不过就是脚本变了

#!/bin/bash
jenkins_workspace="/var/lib/jenkins/workspace"
jenkins_workspace_bak="$jenkins_workspace/bak"
if [ -d "$jenkins_workspace_bak" ]; thenecho "备份目录已经创建"
elsemkdir -p "$jenkins_workspace_bak"echo "创建备份目录"
fi
#!/bin/bash
# ${JOB_NAME}    拉取下来的项目名称
# ${BUILD_NUMBER}    构建按次数
jenkins_workspace="/var/lib/jenkins/workspace"
jenkins_workspace_bak="$jenkins_workspace/bak"
case $status in
fabu)
cd ${jenkins_workspace}/${JOB_NAME}
tar cfz ${JOB_NAME}-${BUILD_NUMBER}.tar.gz ./*
mv ${JOB_NAME}-${BUILD_NUMBER}.tar.gz ${jenkins_workspace_bak}
;;
huigun)
rm -rf /var/lib/jenkins/workspace/${JOB_NAME}/*
cd $jenkins_workspace_bak
tar xf ${JOB_NAME}-${version}.tar.gz -C /var/lib/jenkins/workspace/${JOB_NAME}/
;;
esac
#!/bin/bash
scp /var/lib/jenkins/workspace/${JOB_NAME}/* root@192.168.6.5:/var/www/html
scp /var/lib/jenkins/workspace/${JOB_NAME}/* root@192.168.6.6:/var/www/html
rm -rf /var/lib/jenkins/workspace/${JOB_NAME}

构建的时候和刚刚的一样

相关文章:

Linux:Jenkins:参数化版本回滚(6)

上几章我讲到了自动集成和部署 Linux:Jenkins全自动持续集成持续部署(4)-CSDN博客https://blog.csdn.net/w14768855/article/details/136977106 当我们觉得这个页面不行的时候,需要进行版本回滚,回滚方法我这里准备了…...

Haproxy2.8.1+Lua5.1.4部署,haproxy.cfg配置文件详解和演示

目录 一.快速安装lua和haproxy 二.配置haproxy的配置文件 三.配置haproxy的全局日志 四.测试负载均衡、监控和日志效果 五.server常用可选项 1.check 2.weight 3.backup 4.disabled 5.redirect prefix和redir 6.maxconn 六.调度算法 1.静态 2.动态 一.快速安装lu…...

GenICam-GenApi简介

EMVA 1288标准之GemICam-GenApi学习与解读 背景介绍 当前相机不仅用于传输图像,还打包了越来越多的功能。这就导致相机的编程接口越来越复杂。 GenICam的目标是为所有类型的相机提供一个通用的编程接口,无论相机使用何种接口技术,或者实现…...

如何创建纯净版Django项目并启动?——让Django更加简洁

目录 1. Django的基本目录结构 2. 创建APP 2.1 创建app 2.2 配置文件介绍 3. 迁移数据库文件 3.2 连接数据库 3.1 创建迁移文件 3.2 同步数据库 4. 纯净版Django创建 4.1 剔除APP 4.2 剔除中间件 4.3 剔除模板引擎 5. 最终 1. Django的基本目录结构 在我们创建Django项…...

蓝桥杯 2022 省A 选数异或

一种比较无脑暴力点的方法&#xff0c;时间复杂度是(nm)。 (注意的优先级比^高&#xff0c;记得加括号(a[i]^a[j])x&#xff09; #include <iostream> #include <vector> #include <bits/stdc.h> // 包含一些 C 标准库中未包含的特定实现的函数的头文件 usi…...

计数器选型参数,结构原理,工艺与注意问题总结

🏡《总目录》 目录 1,概述2,工作原理2.1,触发器(Flip-Flop):2.2,计数器结构:2.3,计数操作:2.4,模式控制:2.5,扩展与级联:3,结构特点3.1,触发器3.2,加法器3.3,时钟控制电路...

Android 性能优化实例分享-内存优化 兼顾效率与性能

背景 项目上线一段时间后,回顾重要页面 保证更好用户体验及生产效率&#xff0c;做了内存优化和下载导出优化&#xff0c;具体效果如最后的一节的表格所示。 下面针对拍摄流程的两个页面 预览页 导出页优化实例进行介绍&#xff1a; 一.拍摄前预览页面优化 预览效果问题 存在…...

IT服务监督管理案例分析题

习题一 根据国家电网提出建设智能电网&#xff0c;信息化作为推进电力企业实现发展战略目标的和目标的核心保障体系&#xff0c;作用日益突出。这其中更需要进步推动信息运维综合监管系统的深化应用工作。 某软件股份有限公司是国内IT运维管理服务提供商&#xff0c;为多家电…...

【spring】AbstractApplicationContext 的refresh() 方法学习

上一篇我们一起学习了【spring】FileSystemXmlApplicationContext 类学习 AbstractApplicationContext 的refresh() 方法介绍 AbstractApplicationContext的refresh()方法仍然是整个Spring应用程序上下文初始化的核心流程入口。大体上的刷新生命周期依然保持一致。 refresh(…...

零基础10 天入门 Web3之第1天

10 天入门 Web3 Web3 是互联网的下一代&#xff0c;它将使人们拥有自己的数据并控制自己的在线体验。Web3 基于区块链技术&#xff0c;该技术为安全、透明和可信的交易提供支持。我准备做一个 10 天的学习计划&#xff0c;可帮助大家入门 Web3&#xff1a; 想要一起探讨学习的…...

【1】网络协议基础概念

【1】网络协议基础知识 1、互联网2、为什么要学习网络协议3、学习中需要搭建的环境4、客户端-服务器5、Java 的跨平台原理6、C/C的跨平台原理7、一个简单的SpringBoot项目(1) pom.xml(2) application.yml(3) NetworkStudyApp.java(4) SwaggerConfig.java(5) HelloWorldControll…...

flutter 中 GetxController 和 GetxService 的区别和使用场景

区别&#xff1a; GetxController&#xff1a; GetxController 用于管理特定页面或 widget 的状态。每个页面或 widget 可以拥有一个或多个 GetxController&#xff0c;用于管理其自身的状态和逻辑。GetxController 是短暂存在的&#xff0c;通常与页面或 widget 的生命周期相关…...

Python+Django+Yolov5路面墙体桥梁裂缝特征检测识别html网页前后端

程序示例精选 PythonDjangoYolov5路面墙体桥梁裂缝特征检测识别html网页前后端 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《PythonDjangoYolov5路面墙体桥梁裂缝特征检测识别html网页前…...

uniApp使用XR-Frame创建3D场景(7)加入点击交互

上篇文章讲述了如何将XR-Frame作为子组件集成到uniApp中使用 这篇我们讲解如何与场景中的模型交互&#xff08;点击识别&#xff09; 先看源码 <xr-scene render-system"alpha:true" bind:ready"handleReady"><xr-node><xr-mesh id"…...

单元测试11213123231313131231231231

使用技术 junit Mockito s[romg 示例代码&#xff1a; SpringBootTest(classes启动类.class) public class AbstractTes{ MockBean protected A a; } AutoConfigureMockMvc(printOnlyOnFailure false) public abstract class AbstractWebTes extends AbstractTes imple…...

libVLC 捕获鼠标、键盘事件

在实现播放器的时候&#xff0c;我们需要捕获键盘、鼠标事件进行视频快进、快退&#xff0c;或者双击全屏/退出全屏窗口、鼠标右键弹出菜单栏。默认情况下&#xff0c;在使用libVLC库的时候&#xff0c;我们无法捕获这些事件&#xff0c;因为我们将Qt的视频窗口传递给了libVLC。…...

京东云0基础搭建帕鲁服务器_4核16G和8核32G幻兽帕鲁专用服务器

使用京东云服务器搭建幻兽帕鲁Palworld游戏联机服务器教程&#xff0c;非常简单&#xff0c;京东云推出幻兽帕鲁镜像系统&#xff0c;镜像直接选择幻兽帕鲁镜像即可一键自动部署&#xff0c;不需要手动操作&#xff0c;真正的新手0基础部署幻兽帕鲁&#xff0c;阿腾云atengyun.…...

OpenCV 如何使用 XML 和 YAML 文件的文件输入和输出

返回&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;如何利用OpenCV4.9离散傅里叶变换 下一篇: 目标 本文内容主要介绍&#xff1a; 如何使用 YAML 或 XML 文件打印和读取文件和 OpenCV 的文本条目&#xff1f;如何对 OpenCV …...

playbook的介绍、应用与实施

playbook的介绍、应用与实施 文章目录 playbook的介绍、应用与实施1. 实施playbook1.1 Ansible Playbook与临时命令1.2 格式化Ansible Playbook1.3 运行playbook1.4 提高输出的详细程度1.5 语法验证1.6 执行空运行 2. 实施多个play2.1 缩写多个play2.2 play中的远程用户和特权升…...

uniApp使用XR-Frame创建3D场景(5)材质贴图的运用

上一篇讲解了如何在uniApp中创建xr-frame子组件并创建简单的3D场景。 这篇我们讲解在xr-frame中如何给几何体赋予贴图材质。 先看源码 <xr-scene render-system"alpha:true" bind:ready"handleReady"><xr-node><xr-assets><xr-asse…...

为什么 CFO 总在年底为固定资产失眠?一位 IT 运维的亲历复盘

上个月&#xff0c;我作为外部顾问&#xff0c;去一家年营收5亿的科技公司做系统健康检查。刚进机房&#xff0c;IT主管就苦笑&#xff1a;“我们的 ERP 里有 1200 台设备&#xff0c;但仓库扫码只扫出 780 台——剩下的&#xff0c;要么‘失踪’&#xff0c;要么重复录入了三次…...

使用ComfyUI可视化工作流构建NLP-StructBERT语义搜索应用

使用ComfyUI可视化工作流构建NLP-StructBERT语义搜索应用 你是不是觉得&#xff0c;要搭建一个能理解你说话、能精准搜索内容的AI应用&#xff0c;得写一堆复杂的代码&#xff0c;还得懂各种框架&#xff1f;其实&#xff0c;现在有更简单的方法了。今天&#xff0c;我就带你用…...

antv-g6实战:自定义拓扑图节点与边的动态交互实现

1. 从零开始认识AntV-G6拓扑图 第一次接触AntV-G6这个可视化引擎时&#xff0c;我正面临一个企业级网络拓扑可视化的项目需求。当时尝试过D3.js和ECharts&#xff0c;发现它们要么太底层&#xff0c;要么对关系型数据支持不够友好。直到遇见G6&#xff0c;才发现这就是为拓扑图…...

新手零失败指南:基于快马平台生成win10安装openclaw的交互式学习应用

最近在Windows 10上折腾OpenClaw的安装&#xff0c;作为新手真的踩了不少坑。环境配置报错、依赖冲突、权限问题...每次遇到错误都要花大量时间搜索解决方案。后来发现用InsCode(快马)平台可以快速生成带交互指导的安装程序&#xff0c;终于找到了适合新手的打开方式。这里把完…...

Pixel Mind Decoder 参数调优实战:平衡推理速度与识别准确率

Pixel Mind Decoder 参数调优实战&#xff1a;平衡推理速度与识别准确率 1. 为什么需要参数调优 当你第一次使用Pixel Mind Decoder时&#xff0c;可能会发现同样的输入有时会产生不同的输出质量。这就像开车时需要在速度和油耗之间找到平衡点一样&#xff0c;AI模型的参数调…...

AIGlasses_for_navigation基础教程:无需ESP32,纯Web端完成所有功能验证

AIGlasses_for_navigation基础教程&#xff1a;无需ESP32&#xff0c;纯Web端完成所有功能验证 1. 引言&#xff1a;从零开始&#xff0c;验证你的智能眼镜导航系统 你是不是也对那个集成了AI、传感器和导航功能的智能眼镜项目——AIGlasses_for_navigation——感到好奇&…...

macOS沙盒限制下运行OpenClaw:ollama-QwQ-32B权限解决方案

macOS沙盒限制下运行OpenClaw&#xff1a;ollama-QwQ-32B权限解决方案 1. 问题背景&#xff1a;当自动化遇上macOS沙盒 上周我尝试在macOS Ventura上部署OpenClaw对接本地ollama-QwQ-32B模型时&#xff0c;遭遇了典型的"权限墙"——明明所有服务都正常运行&#xf…...

VMware虚拟机体验FLUX.1:Windows系统免环境配置方案

VMware虚拟机体验FLUX.1&#xff1a;Windows系统免环境配置方案 想快速体验最新的AI绘画技术却苦于环境配置&#xff1f;FLUX.1作为当前最强的开源文生图模型之一&#xff0c;让很多Windows用户望而却步。本文介绍一种零门槛的解决方案——通过VMware虚拟机一键体验&#xff0c…...

Java 设计模式・策略模式篇:从思想到代码实现

一、行为型模式 在面向对象的世界里&#xff0c;如何优雅地组织对象间的交互、分配职责&#xff0c;是每一位开发者都会反复思考的问题。直接硬编码交互逻辑固然简单&#xff0c;但当业务复杂度上升、对象协作关系变得错综复杂时&#xff0c;这种方式就会让代码变得僵化、难以…...

【ArkTS】编程规范

ArkTS 是 HarmonyOS 应用的默认开发语言,在 TypeScript(简称 TS)生态基础上做了扩展,保持 TS 的基本风格。通过规范定义,从而强化了开发期的静态检查和分析,提升了程序执行的稳定性和性能。 一、术语与定义 术语 缩略语 中文解释 ArkTS 无 ArkTS编程语言 TypeScript TS …...