本文章介绍的自动部署方式,因为会将github主账号密码明文保存,不推荐在生产环境使用

#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then
          echo "param参数错误"
          echo "End"
          exit
fi
#git项目路径
gitPath="/www/wwwroot/$1"
#git 网址
gitHttp="https://<账户名>:<密码>@yourhub.com/xxx/$1.git"

echo "Web站点路径:$gitPath"

#判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        #判断是否存在git目录
        if [ ! -d ".git" ]; then
                echo "在该目录下克隆 git"
                git clone $gitHttp gittemp
                mv gittemp/.git .
                rm -rf gittemp
        fi
        #拉取最新的项目文件
        #git reset --hard origin/master
        git pull
        #设置目录权限
        chown -R www:www $gitPath
        echo "End"
        exit
else
        echo "该项目路径不存在"
        echo "End"
        exit
fi
  1. 安装宝塔webhook后点击添加,在脚本栏填入上面的代码,点击查看密钥用于步骤二
  2. 在你的仓库回调Payload URL选项中填入链接http[s]://<ip>:<port>/hook?access_key=<密钥>&param=<项目路径>
  3. 将回调Content type选项切换为application/json(这里不切换的话面板会返回403 Forbidden错误)

  • 请确认服务器已经安装git

    git --version
  • 这里需要仓库名和本地项目文件夹名相同,如果不同请自行修改gitHttp
  • 如果使用ssh方式通信远程仓库,请自行配置好密钥


这种方式会在服务器保存的你的远程仓库账户名和密码,如果你的服务器支持ftp,可尝试使用下面的方式

最后修改:2020-08-18
如果覺得我的文章對你有用,請隨意讚賞