1.新建自有风格项目
2.选择参数化构建过程
image.png3.git代码仓库配置好
4.构建环境选node
image.png5.新增一个有条件的构建步骤
image.png我这里判断是发版还是回滚,如果是发版才执行打包命令
image.png
判断脚本如下:
#!/bin/bash
if [ $BUILD_TYPE == Deploy ];then
echo "Deploy, build required"
exit 0
else
echo "No Need to build"
exit -1
fi
打包命令如下:
npm install
rm -rf ./dist/*
npm run build-test
6.再新建一个有条件的构建步骤
这次我们也是先判断是发版还是回滚
- 如果是发版,那么上边第5步肯定已经打包好了,所以我们只需要把打包好的包放到nginx代理目录下,且备份一下,回滚用(复制到备份文件夹下,最好版本控制)
- 如果是回滚,那么就从备份文件夹下,选取对应的版本放到nginx代理目录下即可
-
最后的步骤是清理备份文件夹
image.png
脚本如下:
case $BUILD_TYPE in
Deploy)
echo "BUILD_TYPE:$BUILD_TYPE"
path="/root/boss-test/bak/$BUILD_NUMBER/dist"
if [ -d $path ];
then
echo "The files is aready exists "
else
mkdir -p $path
fi
cp -rf ./dist/* $path
rm -rf /root/boss-test/dist/*
cp -rf ./dist/* /root/boss-test/dist
echo "completing"
;;
Rollback)
echo "BUILD_TYPE:$BUILD_TYPE"
echo "Version:$Version"
rm -rf /root/boss-test/dist/*
cp -rf /root/boss-test/bak/$Version/dist/* /root/boss-test/dist
;;
*)
exit
;;
esac
ReservedNum=20 #保留文件数
FileDir=/root/boss-test/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
网友评论