Jenkins自动部署与回滚
Deploy发布的思路:
用户无需填写 Version 直接选择对应的项目和 Deploy 发布即可,会自动生成一个 项目名+构建时间 的备份文件
多人使用Jenkins构建的时候会不知道 Version 要填什么 而且本人不喜欢使用 Version 这个变量
Rollback回退的思路:
选择Rollback 选择对应的回退版本即可
安装 Active Choices Plug-in 插 件
我这是安装好的 如果没安装 会有安装选项 安装完启用即可
配置参数化构建
配置 Active Choices Parameter
填写名字 和参数选项 我配置的是多项目实例的
1 2 3 4 5 | return [ "projectName1" , #注意这里有个逗号 "projectName2" , "projectName3" ] |
再添加一个 Active Choices Parameter 配置发布和回滚参数
return [ "Deploy", "Rollback" ]
配置Active Choices Reactive Parameter
填写名字和指定备份脚本的存放的路径
备份是放在Jenkins服务器上的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # 指定当前job的备份文件夹 注意这里不能使用${WORKSPACE}参数 但是可以使用Active Choices Parameter定义的参数如上面的${projectName} path= "/var/jenkins_home/workspace/project/${projectName}/backup/" tags=[ 'bash' , '-c' , "ls -t1 ${path}" ].execute().text.readLines() if (Status. equals ( "Rollback" )) { if (projectName. equals ( "projectName1" )){ return tags } if (projectName. equals ( "projectName2" )){ return tags } if (projectName. equals ( "projectName3" )){ return tags } } |
指定上面Active Choices Parameter 定义的参数 多个参数中间用逗号分隔
编辑shell 实现发布和回滚
我的项目是java 脚本如下 并保留3个备份 超过3个会自动删除最旧的
echo "回滚" path="${WORKSPACE}/${projectName}/back_up/${projectName}-${BUILD_TIMESTAMP}" case $Status in Deploy) echo "Status:$Status" mkdir -p $path cp -r ${WORKSPACE}/${projectName}/target/xjar $path/ cp -r ${WORKSPACE}/${projectName}/target/lib $path/ cp -r ${WORKSPACE}/${projectName}/target/${projectName}*.jar $path/ echo "开始删除超过3个的旧文件" backup_path="${WORKSPACE}/${projectName}/back_up" backup_copies=3 FILENUM=`ls -lrt ${WORKSPACE}/${projectName}/back_up/ | grep ${projectName}*| wc -l` if [ ${FILENUM} -gt ${backup_copies} ]; then OLDEST_File=`ls -lrt ${backup_path}| grep ${projectName}* |awk '{print $9}' | head -1` echo "最旧的文件夹: ${OLDEST_File}" rm -rf ${backup_path}/${OLDEST_File} echo "文件夹: ${OLDEST_File}已删除" fi ;; Rollback) echo "Status:$Status" cp -rf ${WORKSPACE}/${projectName}/back_up/${RollbackVersion}/* ${WORKSPACE}/${projectName}/target/ ;; esac
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix