git单机器自动部署

#!/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 部署完成 ###########################"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值