1.准备
- 码云或git仓库
- 宝塔,需要创建一个空的网站,并且先清空文件内容
- 宝塔软件里搜索 webhooks,选择安装即可
2.设置公钥秘钥
1.进入宝塔终端执行以下命令:
ssh-keygen -t rsa -C "你的邮箱"
在这里需要不断按回车确认,无需输入任何内容,3次左右即会出现以下内容即可:
Your public key has been saved in /Users/xxxx/.ssh/id rsa.pubThe key fingerprint is SHA256xxxxxxx
这里可以使用root或者www权限来进行执行,生成的目录有所不同,这里以root为例
2.打开文件/root/.ssh/id_rsa.pub复制里面的内容
3.打开项目仓库,进入仓库设置,找到部署公钥管理,选择添加部署公钥,把刚才复制的公钥粘贴到这里面
3.设置宝塔WebHook拉取代码
1.打开宝塔的WebHook软件,选择添加Hook
2.编写代码,可以根据自己需求编写:
# !/bin/bash
echo ""
# 输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "-------开始-------"
# 判断宝塔 WebHook 参数是否存在
#if [ ! -n "$1" ];
#then
# echo "param参数错误"
# echo "-------结束-------"
# exit
#fi
# web服务器 git 项目路径
gitPath="服务器网站文件路径"
# 码云项目 SSH 网址 (重点: 千万不要用 https 地址)
gitHttp="git的SSH地址"
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 "-----拉取成功-----"
exit
else
echo "该项目路径不存在"
echo "-------结束-------"
exit
fi
3.保存成功后,选择查看密钥,复制密钥和post地址
3.设置仓库WebHooks
1.打开项目仓库,进入WebHooks,选择新建WebHook
这里可以根据自己业务需求,勾选不同的事件
4.初始化宝塔网站仓库
1.进入宝塔终端,使用ssh方式拉取仓库到对应的网站目录,可以使用 git clone xxxxx . 来去除自带的目录
5.完成
1.点击宝塔WebHook测试按钮,如果成功拉取到代码,就说明成功了
2.点击码云WebHook测试按钮,如果请求成功了,那就说明没问题
3.注意如果拉取的是分支代码,那么git命令一定要写对具体分支
Comments NOTHING