再次记录我的Bt用git同步云效仓库之路

一、Bt环境

  1. 我用了自带的git创建站点,不管用。刷新不出支付。

  2. 在服务器上www用户创建key

bash 复制代码
sudo -u www ssh-keygen -t rsa -b 4096 -f /home/www/.ssh/id_rsa -C "www@bt-server" -N ""

用www用户生成一个SSH密钥对。

  1. 将这个密钥添加到云效的SSH里云。

3.1 复制出/home/www/.ssh/is_rsa.pub里的内容

3.2 点右则头像,找到这个ssh公钥

把复制出来的内容,贴到上面的公钥里。

  1. 在服务器上测试是否用效

输入:

bash 复制代码
sudo -u www ssh -T git@codeup.aliyun.com

如果返回,类似下面信息,就表示连接成功:

bash 复制代码
[www@22222.ssh]$ ssh -t git@codeup.aliyun.com
Welcome to Codeup, du****@126.com!
Connection to codeup.aliyun.com closed

我本来想用Bt的创建站点来做同步的,但我配置好了,刷不出来分支,所以我放弃了。改用webHook.

五、 在Bt的应用商店里安装webhook

安装这个,然后点编辑,把下面的脚本贴进去:

bash 复制代码
#!/bin/bash
echo ""
# 输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "-------开始执行WebHook钩子-------"

# ========= 请修改以下三个变量 =========
# 1. 网站项目在服务器上的绝对路径
gitPath="/www/wwwroot/你的项目目录"

# 2. 云效仓库的 SSH 地址
gitHttp="git@codeup.aliyun.com:你的组名/你的仓库名.git"

# 3. 要拉取的分支名称 (默认是 master 或 main)
gitBranch="main"
# ====================================

echo "项目路径:$gitPath"

# 判断项目路径是否存在
if [ -d "$gitPath" ]; then
    cd $gitPath
    # 判断是否存在 .git 目录
    if [ ! -d ".git" ]; then
        echo "未发现Git仓库,正在克隆..."
        git clone $gitHttp .
    fi
    echo "正在拉取最新代码 (分支: $gitBranch)..."
    git pull origin $gitBranch
    echo "代码拉取完成!"
else
    echo "错误:项目路径不存在!"
    echo "End"
    exit
fi
echo "-------执行结束-------"

六、在云效里找到webhook

在上一步的webHook列表中,有个查看密钥,点下,复制下信息,如下图:

在云效里,找到webHook,如下图:

新建一个webHook ,如下图,URL填查看密钥中看到的信息:

然后提交保存。

七、测试

点右侧操作的测试,就ok了。

你点测试,BT的webhook会同步收到信息。