热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Jenkins备份回滚实现

准备Jenkins插件ActivechoicesConditionalBuildStep实现参数化构建过程1.添加基本参数参数化构建过程2.添加ActivechoicesReact

准备

  • Jenkins 插件
    • Active choices
    • Conditional BuildStep

实现

参数化构建过程

1. 添加基本参数

《Jenkins 备份回滚实现》 参数化构建过程

2. 添加 Active choices Reactive Parameter

这一步,获取备份目录里的文件列表。

《Jenkins 备份回滚实现》 Active choices Reactive Parameter

Grovy Script:

path="${jenkinsProject.workspace}/backup/"
rollback=['bash', '-c', "ls -t1 ${path} "].execute().text.readLines()
if (action.equals("RollBack")) {
return rollback
} else {
return ["选择RollBack后显示"]
}

这里通过 jenkinsProject.workspace 获取 jenkins 的环境变量 WORKSPACE
备份目录在 WORKSPACE 下的 backup 目录中。可以指定为其他目录。

构建

Conditional step 条件性步骤

《Jenkins 备份回滚实现》 2A34FC1E-F3BE-4775-8C18-C5390037B7AC.png

判断第一步中选择的操作类型,在回滚时跳过编译打包的步骤。

备份和回滚

《Jenkins 备份回滚实现》 8399FDE8-CCE4-49D9-ABA1-3731920BF883.png

backup_path=${WORKSPACE}/backup
if [ ! -d $backup_path ]; then
mkdir $backup_path
fi
work_jar=${WORKSPACE}/${provider_name}/build/libs/${provider_name}-1.0.0-SNAPSHOT.jar
if [ ! "$action" = "RollBack" ]; then
cd ${WORKSPACE}
branch=${gitbranch}
back_jar=$backup_path/${JOB_NAME}-${branch/#"origin/"/}-${BUILD_NUMBER}.jar
cp $work_jar $back_jar cd $backup_path
total_file_num=`ls -l | grep -v 'total' | wc -l`
if [ $total_file_num -gt 10 ];
then
num=`expr $total_file_num - 10`
files=`ls -ltr | grep -v 'total' | awk '{print $9}' | head -n $num`
echo $files | xargs rm -f
echo "保留10个备份,删除早期备份: " $files
fi
else
cp $backup_path/${rollback} $work_jar
fi

部署时,在构建完成以后,将jar包复制到备份目录下。
回滚时,通过选择的文件名,获取对应jar包覆盖原本的jar包。
注意修改 work_jar参数,这里使用的provider_name是一个自定义的环境变量,如果各个项目之间命名有一定的规律,可以使用自定义环境变量,来减少配置不同项目时修改的内容。

效果

《Jenkins 备份回滚实现》 665BA589-81BF-47D6-9BB6-D65A9DE68CF2.png
《Jenkins 备份回滚实现》 01090BFA-3B4F-4E48-BBE2-BA50BC3D94AE.png


推荐阅读
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 第四讲ApacheLAMP服务器基本配置Apache的编译安装从Apache的官方网站下载源码包:http:httpd.apache.orgdownload.cgi今 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • 文章目录一、awk简介二、awk的两种形式语法格式1options:2command:三、awk工作原理四、记录与字段相关内部变量:五、格式化输出:printf函数六、awk模式和 ... [详细]
  • 网络安全是一个非常重要的课题,基本上你运行的服务后台越多,你就可能打开更多的安全漏洞.如果配置的恰当的话,Linux本身是非常安全可靠的,假使在Linux系统中有某个安全缺陷,由于Linu ... [详细]
  • nginx使用内置模块配置限速限流的方法实例_nginx
    Nginx现在已经是最火的负载均衡之一,在流量陡增的互联网面前,接口限流也是很有必要的,尤其是针对高并发的场景,下面这篇文章主要给大家介绍了关于nginx使用内置模块配置限速限流的 ... [详细]
author-avatar
小SASA的天空
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有