宝塔 WebHook 代码自动更新到阿里服务器上

一、在服务器中安装GIT服务  这个参考之前安装方法,宝塔环境也是一样子安装的

二、安装WebHook

三、添加脚本  (先添加再编辑,窗口大一些好操作)

3.1  能用代码,服务器所有GIT都适用

#!/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://gitee.com/rizadon/$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

例子:创建xxx.com网站

WebHook网址:http://100.200.200.400:3009/hook?access_key=3XvIsjw24z1TuzJONtHvfohN9yrshaCLsyrg5A1eAjqNwosx&param=xxx

网站名称对应:xxx.com

码云仓库网址也要对应https://gitee.com/fdsf451/xxx.git

四、在码云上添加WebHook网址

把上面宝塔中的WebHook 网址复制过来

五、WebHook 一对一代码更新  不用带param参数

WebHook网址:http://100.200.200.400:3009/hook?access_key=3XvIsjw24z1TuzJONtHvfohN9yrshaCLsyrg5A1eAjqNwosx

六、在码云上部署公钥

进入具体项目仓库

把宝塔中生成SSH复制过来

如果其它仓库已经使用过SSH,在这里启用就行

七、测试代码拉新

 代码没有更新,宝塔WebHook日志显示  但是代码没有更新到,发现在需要在码云上合拼两次阿里服务器才更新到,就是说要更2次

代码改进:加多一句代码

git fetch --all #先删除再拉,不然需要拉二次才到更新到

八、简单代码实现-测试代码拉新

 在宝塔 webhook填写代码

// cd 你的网站路径 && git pull 你的码云地址 refs/heads/你的分支 2>&1
cd /www/wwwroot/cms.xxx.com && git pull git@gitee.com:xxx/applist.git refs/heads/develop 2>&1

7.1 在码云合拼代码

说明成功了。宝塔WebHook日志显示  但是代码没有更新到

用命令查看下原因:

//先进入网站根目录
cd /www/wwwroot/cms.xxxx.com
//然拉下
git pull git@gitee.com:xxx/applist.git refs/heads/develop 2>&1

初始化
git init

发现错误:fatal: not a git repository (or any of the parent directories): .git (致命:不是git存储库(或任何父目录):.git)

说明不是GIT仓库,需要初始化下

git init

再合拼更新发现还是没有更新代码,查看宝塔WebHook日志显示

From gitee.com:xxxx/applist
 * branch            develop    -> FETCH_HEAD
error: The following untracked working tree files would be overwritten by merge:
	.htaccess
Please move or remove them before you merge.
Aborting
From gitee.com:xxx/applist
 * branch            develop    -> FETCH_HEAD
error: The following untracked working tree files would be overwritten by merge:
	.htaccess
Please move or remove them before you merge.
Aborting

发现错误:error: The following untracked working tree files would be overwritten by merge (错误:合并将覆盖以下未跟踪的工作树文件:.htaccess访问)

原因:是宝塔创建网站的时候,会自动生成四个文件,但是初始化GIT仓库是需要是空白一片,不能任何文件的,

把回到网站根目录把文件全部删除后更合拼更新,发现在OK。搞定收工。

如果上面的不行,你再查下面的这些原因:

宝塔webhook 执行后返回{"code": 1},说明执行异常了,请检查命令是否正常。一般来说原因是:

1、路径错误
2、git 仓库的地址异常、没有 pull 权限
3、远程 git 仓库被强制回滚

八、简单代码实现

参考:宝塔git+webhooks实现代码同步更新

https://blog.csdn.net/weixin_44829291/article/details/106001645

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值