🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 部署流程前的准备工作 ##### <blockquote class="danger">准备工作:两个域名、两个分支、一个git仓库、两个数据库(mysql、redis、mongo)<p> ## 部署开始 1:站点截图![](https://img.kancloud.cn/b6/fd/b6fd8a47c12853f5470941521771004c_1913x744.png) 2:目录结构![](https://img.kancloud.cn/ff/bb/ffbbf4df596165ed4369e7bf206a45e6_1916x708.png)(分支目录再往下的目录就是git仓库目录) 3:deploy.sh文件如下: ``` #!/bin/bash start_time=$(date "+%Y-%m-%d %H:%M:%S") # 格式化时间并记录开始时间 start_timestamp=$(date -d "$start_time" +%s) # 将开始时间转换为时间戳 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~环境部署开始(开始部署时间:$start_time)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" # 仓库地址 GIT_REPO_URL="https://codeup.aliyun.com/6409d268e9f200d37adc2ffd/ceshi.git" # 所有分支类型 TEST_BRANCH="test" MASTER_BRANCH="master" # 获取当前分支 BRANCH=${GIT_BRANCH#*/} # 定义环境目录路径 BASE_PRODUCTION_DIR="/www/wwwroot/ceshi" # Git仓库目录名称 GIT_DIR="ceshi" # 根据分支名称选择目标环境目录 if [[ $BRANCH == $TEST_BRANCH ]] || [[ $BRANCH == $MASTER_BRANCH ]]; then TARGET_DIR="$BASE_PRODUCTION_DIR/$BRANCH/$GIT_DIR" echo "分支:<$BRANCH>,路径为:$TARGET_DIR" else echo "分支<$BRANCH>不存在" exit 0 fi # 检查目标环境目录是否存在,不存在则克隆主分支代码 if [[ ! -d $TARGET_DIR ]]; then mkdir -p "$TARGET_DIR" git clone -b "$BRANCH" "$GIT_REPO_URL" "$TARGET_DIR" else # 存在则拉取主分支代码 cd "$TARGET_DIR" git checkout "$BRANCH" git pull origin "$BRANCH" fi end_time=$(date "+%Y-%m-%d %H:%M:%S") # 记录结束时间 end_timestamp=$(date -d "$end_time" +%s) # 将结束时间转换为时间戳 # 计算耗时 duration=$((end_timestamp - start_timestamp)) # 格式化耗时 hours=$((duration / 3600)) minutes=$(((duration % 3600) / 60)) seconds=$((duration % 60)) echo "部署测试环境已完成,耗时:${hours}小时 ${minutes}分钟 ${seconds}秒" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~环境部署完成(部署完成时间:$end_time)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" ```