之前通过jenkins+Git+maven这种方式打war包然后scp到测试环境使用,但是现在项目组要求打增量包,即只部署修改的文件和配置文件。
核心问题:如何获取到变动的文件???
前置条件:初始化部署需要人工进行
操作步骤:
1、配置git从远程端check代码。
2、使用maven打包
3、把class目录和war包传到部署服务器(因为我们打包和执行deploy的服务器分开的,如果是一台不需要改操作)
4、最核心的一步,记录改变的文件的日志。使用的git自带的git diff --stat 命令把修改的文件的名字写到change.log中
PS:原图中名为test.sh的shell脚本的源码在最下边
5、新增的文件和修改的通过第四步可以提取name出来但是删除的不可以,所以还要对已经部署但是删除的文件进行检测
6、现在我们的测试部署端就已经得到新增+删除的log了,在另服务器端使用Python脚本进行文件的替换代码见下,如果使用过程中有问题或者优化建议欢迎留言讨论。
- # !/bin/sh
- # auth andre.yang
- dir=$1
- workspace=$2
- cd $workspace
- str=