赞
踩
前后端代码每次在更新时,总要提交代码,想着有没有云效流水线那种模式,能同步代码。故用宝塔 + WebHook + Gitee来完成此操作。
在宝塔的商店面板下载WebHook,安装后。添加Hook。名称任选,执行脚本在网上找了一个:
PS: 其中gitHttp中的xxx替换为自己gitee上的地址,比如我的主页为 https://gitee.com/acardia_liu,则我把xxx替换为acardia_liu即可。
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="https://gitee.com/xxx/$1.git" //xxx替换为自己仓库的链接 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
提交后,点击查看秘钥:
框起来的部分,在Gitee项目配置WebHook时会要到,param后面的参数为Gitee项目的仓库名
,比如我的项目为test-webhooks,则将aaa替换为test-webhooks。
点击添加后,需填写如下参数:
URL填写WebHook中框起来的部分,param后面的参数为Gitee项目的仓库名
。密码可以不用填。
yum -y install git
因为我配置了,无法重现,使用一下别人配置的代码:
git config --global user.name "用户名" git config --global user.email "邮箱" git config --global credential.helper store //会生成.gitconfig 的文件,查看 cat ~/.gitconfig //显示内容 [user] name = 输入的用户名 email = 输入的邮箱 [credential] helper = store // 假设你已经设置好origin并已拉取过代码 // 第一次pull会提示输入用户名密码 [root@iZ25mi9h7ayZ test]# git pull Username for 'https://gitee.com': xxxx@xxxx.com Password for 'https://xxxx@xxxx.com@gitee.com':输入正确密码(看不到输入内容) //生成.git-credentials 隐藏文件 cat ~/.git-credentials https://Username:Password@gitee.com // 看到这个说明已经设置成功 vi ~/.git-credentials //可加多个用户名密码
配置完成后,在wwwroot目录下,克隆自己的仓库(此处的文件目录应与gitee上的目录保持一致)。
git clone https://gitee.com/acardia_liu/test-webhooks.git
测试:在Gitee项目上添加一个文件,看服务器是否进行同步处理。发现并没有同步代码,然后在test-webhooks目录中执行git pull
时,提示:git config --global --add safe.directory /www/wwwroot/test-webhooks
因为git进行了版本升级,添加了新的目录安全限制。会造成在进行git常规操作或者在各类编辑器中无法发现.git文件。
解决:
git config --global --add safe.directory /www/wwwroot/test-webhooks
git config --global --add safe.directory "*"
解决完毕后,再执行git pull
看是否执行成功。
在Gitee项目新建文件fff,看是否同步成功。
增加文件成功!
再试试删除test文件:
删除成功!
webHook日志上也成功显示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。