#!/bin/sh
echo "============*******************================="
echo "============ java 自动部署脚本 ================="
echo "============*******************================="
read -p "请输入将要部署的代码根路径: " rootDir
read -p "请输入模块名: " prjName
read -p "请输入程序名: " applicationName
read -p "目标路径: " targetPath
read -p "请输入部署的分支名称(例如:master): " branch
read -p "请输入部署的环境(例如:product|test|dev): " env
read -p "请输入程序操作(例如:start|stop|restart|info|status): " handle
read -p "是否需要从远程仓库pull代码(例如:y|n): " pull
# default ip
ip=${ip:-127.0.0.1}
# branch is snapshot-2.0
branch=${branch:-snapshot-2.0}
# maven -P test
env=${env:-test}
# default is restart
handle=${handle:-restart}
# default is y
pull=${pull:-y}
# project Name
prjName=${prjName:-''}
# app Name
applicationName=${applicationName:-''}
# priject root path
rootDir=${rootDir:-/home/ubuntu/codespace}
# target path
targetPath=${targetPath:-''}
echo $rootDir $prjName $applicationName $branch $env $handle $pull
user=ubuntu
prjPath=$rootDir/$prjName
appPath=$rootDir/$prjName/$applicationName
# snapshot
snapshot=${branch%-*}
# 2.0.0
vernum=${branch#*-}.0
appName=$applicationName-$vernum-$snapshot.zip
zip_file=$appPath/target/$appName
bakupPath=release/`date "+%Y-%m-%d-%H-%M-%S"`
if [ ! -d "$prjPath" ]; then
echo "project path $prjPath is not exist"
exit 0
else
cd $prjPath
fi
if [ $pull == 'y' ];then
git checkout $branch
git pull origin $branch
fi
mvn clean install -Dmaven.test.skip=true -P${env}
if [ ! -d "$targetPath" ]; then
echo "target path $targetPath is not exist"
exit 0
fi
if [ ! -f "$zip_file" ]; then
echo "zip file $zip_file is not exist"
exit 0
else
cd $targetPath
sh stop.sh
mkdir -p $bakupPath
cp -r conf lib start.sh stop.sh $bakupPath
rm -rf conf lib start.sh stop.sh
cp $zip_file .
unzip -o $zip_file
sh start.sh &
exit 0
fi
echo "============*******************================="
echo "============ java 自动部署脚本 ================="
echo "============*******************================="
read -p "请输入将要部署的代码根路径: " rootDir
read -p "请输入模块名: " prjName
read -p "请输入程序名: " applicationName
read -p "目标路径: " targetPath
read -p "请输入部署的分支名称(例如:master): " branch
read -p "请输入部署的环境(例如:product|test|dev): " env
read -p "请输入程序操作(例如:start|stop|restart|info|status): " handle
read -p "是否需要从远程仓库pull代码(例如:y|n): " pull
# default ip
ip=${ip:-127.0.0.1}
# branch is snapshot-2.0
branch=${branch:-snapshot-2.0}
# maven -P test
env=${env:-test}
# default is restart
handle=${handle:-restart}
# default is y
pull=${pull:-y}
# project Name
prjName=${prjName:-''}
# app Name
applicationName=${applicationName:-''}
# priject root path
rootDir=${rootDir:-/home/ubuntu/codespace}
# target path
targetPath=${targetPath:-''}
echo $rootDir $prjName $applicationName $branch $env $handle $pull
user=ubuntu
prjPath=$rootDir/$prjName
appPath=$rootDir/$prjName/$applicationName
# snapshot
snapshot=${branch%-*}
# 2.0.0
vernum=${branch#*-}.0
appName=$applicationName-$vernum-$snapshot.zip
zip_file=$appPath/target/$appName
bakupPath=release/`date "+%Y-%m-%d-%H-%M-%S"`
if [ ! -d "$prjPath" ]; then
echo "project path $prjPath is not exist"
exit 0
else
cd $prjPath
fi
if [ $pull == 'y' ];then
git checkout $branch
git pull origin $branch
fi
mvn clean install -Dmaven.test.skip=true -P${env}
if [ ! -d "$targetPath" ]; then
echo "target path $targetPath is not exist"
exit 0
fi
if [ ! -f "$zip_file" ]; then
echo "zip file $zip_file is not exist"
exit 0
else
cd $targetPath
sh stop.sh
mkdir -p $bakupPath
cp -r conf lib start.sh stop.sh $bakupPath
rm -rf conf lib start.sh stop.sh
cp $zip_file .
unzip -o $zip_file
sh start.sh &
exit 0
fi