在平时的项目中,可能通常会用一些 CI工具,如 jenkins
进行项目的自动化部署,然而对于小型项目,可能采用这些CI工具显得有点臃肿。采用自定义shell
自动化脚本 比较适合。
下面将本人在平时工作中写的一个自动化项目部署脚本推荐给大家仅供参考:
1. 切换到自己项目部署的路径
function clear_dir() {
# 路径修改成自己的项目所在路径
cd /opt/py_we_com_push/ || exit
# cd /opt/py_we_com_push/ || mkdir -p /opt/py_we_com_push/
# shellcheck disable=SC2035
rm -rf *
echo 'clear py-message-push project success ^_^'
}
2.克隆代码
function clone_code() {
cd /opt/py_we_com_push/ || exit
# cd /opt/py_we_com_push/ || mkdir -p /opt/py_we_com_push/
git clone 你的代码git地址
code=$?
if [ $code -eq 0 ] ; then
echo 'clone py-message-push project success ^_^'
# 移除原始log文件
cd /opt/py_log/supervisor_log || exit
rm *.log
# shellcheck disable=SC2034
status=$?
if [ $code -eq 0 ] ; then
echo 'delete old *.log file success ^_^'
else
echo 'delete old log file failure T_T'
fi
else
echo 'clone py_task project failure T_T'
exit
fi
# cd /opt/py_project/py_bi | rm Pipfile.lock
}
3. 安装依赖的第三方包
function install_py_dependency_package () {
cd /opt/py_we_com_push/py-message-push/ || exit
# 自定义虚拟环境的目录 保存虚拟环境至项目的根目录
# export PIPENV_VENV_IN_PROJECT=1
# pipenv shell
# 移除原来的虚拟环境
pipenv --rm
# 生成 pipenv.lock文件
pipenv lock
pipenv install
code=$?
if [ $code -eq 0 ]; then
echo 'install python dependency package success ^_^'
else
echo 'install python dependency package failure T_T'
exit
fi
}
4. 执行整个流程
clear_dir
clone_code
install_py_dependency_package
🎉🎉 一个简单的项目部署脚本就行了。