Gitee 代码自动同步到宝塔站点

2024-08-23 16:05:45 浏览数 (1)

1. 创建gitee仓库

这个方法大家应该都会

2. 添加服务器公钥

使用公钥验证,避免账号密码的烦恼

服务器公钥获取方式:

a. 连接服务器,打开命令行界面

b. 输入生成密钥命令(需提前安装好git)

代码语言:javascript复制
ssh-keygen -t rsa -C "你的邮箱地址"

c. 根据生成步骤可以看到公钥的位置,通过cat命令查看内容

代码语言:javascript复制
cat ~/.ssh/id_rsa.pub

3.服务器git拉取代码至站点(使用ssh链接)

代码语言:javascript复制
git clone git@gitee.com/xxx.git xxx_file

4.宝塔安装webhook插件并配置

a.软件商店搜索“webhook”,点击安装

b.安装完成后,点设置=》添加,填写参数

名称随便起,执行脚本如下:

(其中gitPath为你的站点目录,建议改成你的完整路径,gitHttp为你的仓库链接,$1是参数变量,可以通过GET获取)

代码语言:javascript复制
#!/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="git@gitee.com:xxx.git" #自己仓库的链接
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull 
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End"
exit
else
echo "该项目路径不存在"
echo "新建项目目录"
mkdir $gitPath
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End"
exit
fi

5.配置gitee仓库的webhooks

a.打开gitee仓库的webhooks添加界面

b.点击宝塔webhook“查看密钥”按钮,将获取的参数对应到gitee中,最后保存

到这里就结束,可以进行push操作来测试啦。

0 人点赞