码云gitee+宝塔webhook实现同步代码

码云gitee+宝塔webhook实现同步代码

1. 服务器端

1.1 登录服务器,输入命令查看密钥:

cd ~/.ssh

ls

在这里插入图片描述

1.2 生成公钥/私钥:

# ed25519:密钥名称 [email protected]:邮箱(仅用于标识)
ssh-keygen -t ed25519 -C "[email protected]"  

码云gitee+宝塔webhook实现同步代码_第1张图片
码云gitee+宝塔webhook实现同步代码_第2张图片

1.3 复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中。

在这里插入图片描述
码云gitee+宝塔webhook实现同步代码_第3张图片
1.4 添加后,在终端中输入:

ssh -T [email protected]

添加成功后,就可以使用SSH协议对仓库进行操作了。

2. 宝塔控制面板

2.1 宝塔安装 webhook
码云gitee+宝塔webhook实现同步代码_第4张图片
2.2 添加 webhook 回调脚本

#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "-------开始-------"
#判断宝塔WebHook参数是否存在
if [ ! -n "$1" ];
then 
          echo "param参数错误"
          echo "End"
          exit
fi
#服务器 git 项目路径
gitPath="/www/wwwroot/项目目录"
#码云项目 git 网址,如:[email protected]:wangqianshun1/xxx.git
gitHttp="必须是ssh地址"
 
echo "路径:$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 clean -f
        git pull origin master
        echo "拉取完成"
        #执行npm
        #执行编译
        #npm run build
        #设置目录权限
        chown -R www:www $gitPath
        echo "-------结束--------"
        exit
else
        echo "该项目路径不存在"
        echo "End"
        exit
fi

码云gitee+宝塔webhook实现同步代码_第5张图片
2.3 添加成功后查看密钥,并复制密钥 和 host 地址:
码云gitee+宝塔webhook实现同步代码_第6张图片

3. 码云

3.1 添加webhook,将复制的 密钥 和 host 地址填写进下方:

qcYkCtHESuXFrJHDLSVNz1Xq8zjLnph

http://xxx:8888/hook?access_key=qcYkCtHESuXFrJHDLSVNz1Xq8zjLnphlyS¶m=aaa

码云gitee+宝塔webhook实现同步代码_第7张图片
3.2 进行测试:
码云gitee+宝塔webhook实现同步代码_第8张图片

你可能感兴趣的:(PHP,服务器,ssh,git)