使用webHook同步git仓库与服务器项目

  • 在git上创建一个新的项目仓库
  • 在服务器上安装WebHook,以宝塔WebHook为例
  • 安装成功后添加hook,并编写执行脚本.以以下脚本为例
#!/bin/bash
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "-------开始-------"
#判断宝塔WebHook参数是否存在

# 名称必须与码云上的项目名称一致,还要去拉取下来后的文件夹名称一致
project = "laravel_relation"
# 需要同步的分支名称
branch = "dev"

if [ ! -n "$project" ];
then
echo "param参数错误"
echo "End"
exit
fi
#服务器 git 项目路径
gitPath="/www/wwwroot/$project"
#码云项目 git 网址
gitHttp="git@gitee.com:NianTianDiZhiYouYou/$project.git"


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/$branch
#git clean -f
git pull origin $branch
echo "拉取完成"
#执行npm
#执行编译
#npm run build
#设置目录权限
chown -R www:www $gitPath
echo "-------结束--------"
exit
else
echo "该项目路径不存在"
echo "End"
exit
fi
  • 填写git公钥

    1. 在服务器端执行命令生成公钥文件

      ssh-keygen -t ed25519 
      # 一直回车到底
      
    2. 生成的公钥文件一般在 /root/.ssh/id_ed25519.pub ,打开文件复制内容

    3. 在git上添加新的公钥 安全设置→SSH公钥 添加复制的公钥

    4. 可以在项目目录下 执行 git clone ssh地址 看看能不能克隆项目 如果可以 表示配置成功

  • 配置git 的 webhooks在仓库的管理中可以找到 之后添加地址和秘钥

  • 提交一次相应分支的代码测试是否同步

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容