代码拉取完成,页面将自动刷新
#!/bin/bash
# Author: Naccl
#
# This script is used to deploy NBlog to my server, apply my changes
# on the "prod" branch for myself.
# I didn't upload "prod" branch because it has my own configuration,
# so you may not be able to use it.
project_local_path=~/work/idea-project/NBlog
dev_branch=master
prod_branch=prod
server=aliyun
api_path=/home/nblog/api
cms_path=/home/nblog/cms
view_path=/home/nblog/view
function echo_msg()
{
case $1 in
0)
echo -e "\033[30;42m $2 \033[0m"
;;
1)
echo -e "\033[30;41m $2 \033[0m"
;;
*)
echo "$2"
;;
esac
}
module_name=''
server_path=''
function menu()
{
echo -e "\033[35m(1)blog-api\033[0m"
echo -e "\033[35m(2)blog-cms\033[0m"
echo -e "\033[35m(3)blog-view\033[0m"
read -p "choice a module to deploy: " module
case $module in
1)
echo_msg 0 "deploy blog-api"
module_name=blog-api
server_path=$api_path
deploy_springboot
;;
2)
echo_msg 0 "deploy blog-cms"
module_name=blog-cms
server_path=$cms_path
deploy_vue
;;
3)
echo_msg 0 "deploy blog-view"
module_name=blog-view
server_path=$view_path
deploy_vue
;;
*)
echo_msg 1 "ERROR INPUT"
exit 1
esac
echo_msg 0 "DONE"
}
function deploy_springboot()
{
git_merge
echo_msg 0 "build $module_name"
mvn clean package -Dmaven.test.skip=true
echo_msg 0 "scp target jar to server"
scp target/blog-api-0.0.1.jar ${server}:${server_path}
read -p "restart $module_name right now? [y/n]: " restart
case $restart in
y)
ssh $server "cd ${server_path} && sh run.sh"
;;
*)
;;
esac
}
function deploy_vue()
{
git_merge
echo_msg 0 "build $module_name"
npm run build
echo_msg 0 "create dir to server if not exist, clean server dist dir if exist"
ssh $server "rm -rf $server_path/dist && mkdir -p $server_path/dist"
echo_msg 0 "scp dist to server"
scp -r dist ${server}:${server_path}
}
function git_merge()
{
cd ${project_local_path}/${module_name}
branch=$(git rev-parse --abbrev-ref HEAD)
if [[ $branch = $dev_branch ]]; then
echo_msg 0 "branch in $branch, checkout to $prod_branch"
git checkout $prod_branch
echo_msg 0 "merge $branch into $prod_branch"
git merge -m "Merge branch '$branch' into $prod_branch" "$branch"
elif [[ $branch = $prod_branch ]]; then
echo_msg 0 "branch already in $prod_branch"
else
echo_msg 1 "ERROR branch in '$branch'"
exit 1
fi
}
menu
read -n 1 -p "Press any key to exit..."
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。