#!/bin/bash
# @Author: admin
# @Date: 2023-11-22 17:20:22
# @Last Modified by: admin
# @Last Modified time: 2023-11-22 20:58:01
# 添加部署脚本
# 首先给脚本执行权限 chmod +x ./deploy.sh
# 使用: ./gitee.sh
# 或: ./deploy.sh www // www为最终发布目录的所属用户
# 源码将发布到 destDir设置的目录下
# read -p "请输入gitee账号 :" username
# while true
# do
# if [ ! -n "$username" ];then
# read -p "必须输入请输入gitee账号 或者q退出:" username
# else
# if [ "$username" = "q" ];then
# exit 0
# else
# break
# fi
# fi
# done
# read -p "请输入gitee密码 :" password
# while true
# do
# if [ ! -n "$password" ];then
# read -p "必须输入请输入gitee密码 或者q退出:" password
# else
# if [ "$password" = "q" ];then
# exit 0
# else
# break
# fi
# fi
# done
echo '--初始化目录--'
# 临时目录,多个仓库应该使用不同的临时目录
tmpDir="$(pwd)/.qqmasterTemp"
# 部署目录不能与脚本所有目录相同
newDir="$(pwd)/qqmaster"
if [ ! -e "$tmpDir" ];then
mkdir "$tmpDir"
fi
if [ ! -e "$newDir" ];then
mkdir "$newDir"
fi
# 代码仓库目录 deploy:gitlab-ci-token修改为部署令牌和密码,也可以是gitlab用户和密码
repository="https://gitee.com/wangzh/qqmaster.git"
# if [ -d $tmpDir ]
# then
# rm -rf $tmpDir
# fi
echo '--拉取代码--'
git clone $repository $tmpDir
echo '--拉取完成--'
#切換分支
echo '--切換分支--'
cd $tmpDir && git checkout dev
echo '--刪除不能覆蓋的文件--'
cd $tmpDir && rm -rf ApiAdmin/.env && rm -rf ApiAdmin/config && rm -rf ApiAdmin/.git && rm -rf ApiAdmin/cert
# 拷贝源码到部署目录
echo '--拷贝源码到部署目录--'
cd $tmpDir && cp -rf "./" $newDir
echo '--为项目赋权--'
cd $newDir && sudo -S chown -R www:www ./* && sudo -S chmod -R 755 ./*
echo '--移除临时目录--'
rm -rf $tmpDir
echo "--发布完成--"
此方法的好处是可以避免一些冲突提示
此方法的缺点是仓库用的是码云的,每次使用https方式拉取都要输入账号密码