[宝塔面板] 使用 宝塔WebHook 实现代码自动更新

  1. 7 月前
    7 月前,由 houzhenhong 重新编辑

    WebHook,可设置回调脚本,用于第三方回调通知。
    意思就是说当你在 Github 中提交了一个 push 那么服务器这边就会更新(git pull),目前 eso.towerlight.top 就是这样做的。

    1.服务器 安装 git
    2.面板 安装 宝塔 webhook 1.0
    3.通过 webhook 添加 shell 命令
    名称: 自由填写
    执行脚本: 需要填写 gitPath gitHttp 两行

    #!/bin/bash
    echo ""
    #输出当前时间
    date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
    echo "Start"
    #git项目路径
    gitPath="/www/wwwroot/***.com"
    #git 网址
    gitHttp="https://github.com/***/**.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

    4.点击查看密钥,并复制密钥
    5.到达 github repo,找到 settings,选择 Webhooks,点击 add Webhooks,确认密码
    6.在 Payload URL 中输入 http://*.*.*.*:8888/hook?access_key=(第4步中的密钥)

或者 注册后参与话题.