#!/bin/bash
#
#Script Name: deploy.sh
#Description: 部署代码脚本
#Author: Rambzz
#email: Rambzz@qq.com
#time: 2023/06/09 11:50
# 获取输入的项目变量
project=$1
branch=${2:-main}
# 判断项目,并执行相应的操作
# shellcheck disable=SC1069
# shellcheck disable=SC1068
project_name=$project
if [ $project == "x" ]; then
# shellcheck disable=SC1068
project_dir="/home/xx/www/edusys2.0"
project_name='教务系统'
elif [ $project == "x" ]; then
# shellcheck disable=SC1068
project_dir="/home/x/www/edusys2.02"
project_name='教务系统测试环境2'
elif [ $project == "gitbook" ]; then
# shellcheck disable=SC1068
project_dir="/home/xx/www/gitbook"
project_name='供应商系统使用文档'
elif [ $project == "x" ]; then
# shellcheck disable=SC1068
project_dir="/home/x/www/supplier"
project_name='供应商系统'
else
# 未知项目目录,输出错误提示
echo "ERROR 无法识别的项目!"
exit 1
fi
echo "######################开始执行部署 项目名称:$project $project_name 分支名称: $branch ###########################"
cd $project_dir
#Git操作
# 列出所有分支并检查是否存在指定分支
if git branch --list | grep -q "$branch" >/dev/null 2>&1; then
if ! git checkout "$branch" > /dev/null 2>&1; then
echo "ERROR 切换到 $branch 分支、请检查是否代码冲突"
exit 1
fi
echo "切换到 $branch 分支"
else
# 查询远程分支是否存在
if git ls-remote --exit-code --heads origin "$branch" >/dev/null 2>&1; then
#echo "远程分支 $branch 存在,正在拉取远程分支到本地..."
if ! git checkout -b "$branch" "origin/$branch" >/dev/null 2>&1; then
echo "ERROR 拉取远程分支失败、请检查是否代码冲突已经远程分支是否存在"
exit 1
fi
else
echo "ERROR 分支 $branch 不存在"
exit 1
fi
fi
#拉取代码
#git pull
#echo "代码拉取成功"
if ! git pull; then
echo "代码拉取失败"
exit 1
fi
# 返回到原来的工作目录
cd - >/dev/null 2>&1
echo "###################### SUCCESS 部署完成 ###########################"
git单机器自动部署
最新推荐文章于 2024-09-01 08:51:40 发布