git持续集成自动化部
# cat prod-deploy.sh#
!/bin/bash
#Date
/Time
CDATE
=$(date "+%Y-%m-%d")
CTIME
=$(date "+%Y-%m-%d_%H-%M")
#Shell
CODE_DIR
="/deploy/code/demo"
CONFIG_DIR
="/deploy/config"
TMP_DIR
="/deploy/tmp"
TAR_DIR
="/deploy/tar"
usage(){
echo $
"Usage: $0 "
}
#获取代码
git_pro(){
echo
"begin git pull"
cd ${CODE_DIR}
&& git pull
API_VERL
=$(git show|grep commit|cut -d ' ' -f2)
API_VER
=$(echo ${API_VERL:0:6})
cp
-r "${CODE_DIR}" "${TMP_DIR}"
}
#配置文件
config_pro(){
echo
"add pro config"
/bin/cp "${CONFIG_DIR}"/*"${TMP_DIR}"/demo/
TAR_VER="${API_VER}"_"$CTIME"
cd ${TMP_DIR} && mv demo pro_demo_"${TAR_VER}"
}
#打包
tar_pro(){
echo "tar pro"
cd ${TMP_DIR} && tar czf pro_demo_"${TAR_VER}".tar.gz pro_demo_"${TAR_VER}"
echo "tar end pro_demo_"${TAR_VER}".tar.gz"
}
#拷贝到对应服务器对应目录
scp_pro(){
#模拟远程scp
echo "begin copy"
/bin/cp ${TMP_DIR}/pro_demo_"${TAR_VER}".tar.gz /tmp/testgit
}
#部署节点
deploy_pro(){
echo "begin deploy"
cd /tmp/testgit && tar zxf pro_demo_"${TAR_VER}".tar.gz
rm -f /var/www/html/demo
ln -s /tmp/pro_demo_"${TAR_VER}" /var/www/html/demo
}
#测试
test_pro(){
echo "test begin"
echo "test ok"
}
rollback_list(){
ls -l /tmp/testgit/*.tar.gz
}
rollback_pro(){
rm -f /var/www/html/demo
ln -s /tmp/testgit/$1 /var/www/html/demo
}
main(){
case $1 in
deploy)
git_pro;
config_pro;
tar_pro;
scp_pro;
deploy_pro;
test_pro;
;;
rollback-list)
rollback_list;
;;
rollback-pro)
rollback_pro $2
;;
*)
usage;
esac
}
main $1 $2
页:
[1]