一、创建项目
填写项目名,关系到项目路径对应请谨慎命名
二、项目配置
1.配置字符串参数和选项参数
2.代码仓库配置
3.构建环境
4.构筑脚本配置
5.点击左下方的保存或者应用
三、使用方法
1.发布回退流程
2.查看历史发布信息
四、基础脚本(会自动对应到所在项目或项目文件夹):
1 TmpDir=${WORKSPACE} 2 Date=$(date "+%Y%m%d-%H%M%S") 3 LogFile=/var/log/deploy/"$Status"_$(date "+%Y%m%d").log 4 5 case $Status in 6 Deploy) 7 path="/bak$TmpDir/$Time" #创建每次要备份的目录 8 if [ -d $path ]; 9 then 10 echo "The files is already exists " >> $LogFile 11 else 12 mkdir -p $path 13 chmod 777 $path 14 fi 15 \cp -rf $TmpDir/* $path #将打包好的文件备份到相应目录,覆盖已存在的目标 16 echo "$Date Completing! Project:${WORKSPACE} Status:$Status Version: $Time BuildNum:${BUILD_NUMBER}" >> $LogFile 17 ;; 18 Rollback) 19 cd /bak$TmpDir/$Time #进入备份目录 20 \cp -rf * $TmpDir/ #将备份拷贝到程序打包目录中,并覆盖之前的包 21 echo "$Date Completing! Project:${WORKSPACE} Status:$Status Version:$Time BuildNum:${BUILD_NUMBER}" >> $LogFile 22 ;; 23 *) 24 exit 25 ;; 26 esac 27 28 ReservedNum=30 #保留文件数 29 FileDir="/bak$TmpDir/" 30 31 cd $FileDir #进入备份目录 32 FileNum=$(ls -l | grep '^d' | wc -l) #当前有几个文件夹,即几个备份 33 34 while(( $FileNum > $ReservedNum)) 35 do 36 OldFile=$(ls -rt | head -1) #获取最旧的那个备份文件夹 37 echo $date "$Date Delete File:"$OldFile >> $LogFile 38 rm -rf $FileDir/$OldFile 39 let "FileNum--" 40 done 41 42 # 下面放具体项目发布脚本指令(即由ci服务器分发到线上服务)
五、相关须知:
*ci 回退备份文件目录 /bak/var/lib/jenkins/workspace/xxx项目名/
需要时可手动查找相关版本项目文件,目前脚本内只保留单项目或目录30份备份文件,可根据需要更改脚本内参数30为既定量
*ci 发布回退日志文件目录 /var/log/deploy/ 会记录当天的发布和回退情况
示例:
20201012-165752 Completing! Project:/var/lib/jenkins/workspace/test-ci-backend Status:Deploy Version: 2020101224 BuildNum:84
20201012-164711 Completing! Project:/var/lib/jenkins/workspace/test-ci-backend Status:Rollback Version:2020101221 BuildNum:83
对应了秒级项目发布时间,项目所在位置即哪个项目,发布回退状态,发布和回退时填写时间版本号,发布的序号对应jenkins序号
------
往事如烟,伴着远去的步伐而愈加朦胧。未来似雾,和着前进的风儿而逐渐清晰!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现