原理
當(dāng)版本庫(kù)代碼更新時(shí)蕉鸳,通過(guò) git 的 webhook(git web 鉤子)觸發(fā) push 事件楷兽。用戶提交代碼(git push)服務(wù)器的寶塔 webhook 插件拉取當(dāng)前 git 最新代碼(git pull)蕊退。
步驟
1眶俩、CentOS 服務(wù)器安裝寶塔面板:寶塔面板
2朴沿、安裝 git:
yum install git
Tips: Git 生成 SSH 公鑰
3岸夯、寶塔面板軟件商店安裝 寶塔WebHook瓶堕;
4隘道、添加 HOOK 命令:
#!/bin/bash
echo ""
#輸出當(dāng)前時(shí)間
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#判斷寶塔WebHook參數(shù)是否存在
if [ ! -n "$1" ];
then
echo "param參數(shù)錯(cuò)誤"
echo "End"
exit
fi
#git項(xiàng)目路徑
gitPath="/www/wwwroot/web/$1"
#git 網(wǎng)址
gitHttp="http://git.xxxxx.com/web/$1.git"
echo "Web站點(diǎn)路徑:$gitPath"
#判斷項(xiàng)目路徑是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判斷是否存在git目錄
if [ ! -d ".git" ]; then
echo "在該目錄下克隆 git"
git clone $gitHttp gittemp
mv gittemp/.git .
rm -rf gittemp
fi
#拉取最新的項(xiàng)目文件
git reset --hard origin/master
git pull
#設(shè)置目錄權(quán)限
chown -R www:www $gitPath
echo "End"
exit
else
echo "該項(xiàng)目路徑不存在"
echo "End"
exit
fi
5、保存后郎笆,查看密鑰獲取調(diào)用地址:
http://IP地址:8888/hook?access_key=Ek5nOl6jXWOmTZLV0Hb4UXcfDbsdc3WCMpHJIdI6Dvl¶m=www
參數(shù) param 為命令中的變量 $1
6谭梗、查看寶塔 webhook 日志,拉取是否成功