jenkins 自动化构建 部署 回滚配置
jenkins自动化构建,自动化部署,回滚具体配置如下:以测试环境xx服务为例进行配置
jenkins至少需要安装如下两个插件:
上面具体脚本如下:
case $Status in
Deploy)
cd /root/.jenkins/workspace/cart-service
/data/tools/maven3/bin/mvn clean package -f pom.xml -Drun.profiles=test -Dmaven.test.skip=true
cp -r /root/.jenkins/workspace/cart-service/cart-service/target/cart-service-1.0.jar /project/code/
kill -9 $(ps -ef|grep cart-service|grep -v grep|awk '{print $2}')
nohup /data/tools/jdk8/bin/java -jar -Dspring.profiles.active=dev /project/code/cart-service-1.0.jar >>/project/logs/cart-service.log 2>&1 &
echo "Status:$Status"
path="${WORKSPACE}/bak/${BUILD_NUMBER}" #创建每次要备份的目录
if [ -d $path ];
then
echo "The files is already exists "
else
mkdir -p $path
fi
\cp -f ${WORKSPACE}/cart-service/target/cart-service-1.0.jar $path #将打包好的jar包备份到相应目录,覆盖已存在的目标
echo "Completing!"
;;
Rollback)
echo "Status:$Status"
echo "Version:$Version"
cd ${WORKSPACE}/bak/$Version #进入备份目录
\cp -f cart-service-1.0.jar ${WORKSPACE}/cart-service/target/ #将备份拷贝到程序打包目录中,并覆盖之前的jar包
cp -r /root/.jenkins/workspace/cart-service/cart-service/target/cart-service-1.0.jar /project/code/
kill -9 $(ps -ef|grep cart-service|grep -v grep|awk '{print $2}')
nohup /data/tools/jdk8/bin/java -jar -Dspring.profiles.active=dev /project/code/cart-service-1.0.jar >>/project/logs/cart-service.log 2>&1 &
;;
*)
exit
;;
esac
上面具体脚本如下:
ReservedNum=5 #保留文件数
FileDir=${WORKSPACE}/bak/
date=$(date "+%Y%m%d-%H%M%S")
cd $FileDir #进入备份目录
FileNum=$(ls -l | grep '^d' | wc -l) #当前有几个文件夹,即几个备份
while(( $FileNum > $ReservedNum))
do
OldFile=$(ls -rt | head -1) #获取最旧的那个备份文件夹
echo $date "Delete File:"$OldFile
rm -rf $FileDir/$OldFile
let "FileNum--"
done
jenkins到此配置结束。
下面开始配置gitlab(自动化构建部署):
以dev分支下的xxx-service 服务(项目)为例进行具体配置:
点击setttings(设置)进行配置,选择settings下的集成进去配置,具体如下:
如上点击test,选中push那个,成功会返回200,如下,然后保存提交(修改)。
到此为止,jenkins自动化构建,自动化部署,回滚配置完成。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性