1.部署环境配置
宝塔 + 云服务器 + gitlab + webhook
其中 gitlab 和 webhook 使用宝塔进行一键安装
2. 主要说明使用webhook遇到的问题以及怎么进行调试
执行脚本的代码如下,
1.当第一次使用以下脚本无法创建代码仓库的时候,可以使用 宝塔自带的控制塔先设置git的一些参数如下,进行 git clone http://192.168.0.0/ll/book.git 等操作先保证可以正常使用git功能
2. gitlab上配置当产生 push事件的时候使用这个函数钩子
3. 以上就完成了本地push代码的时候,云服务器上自动提交代码
4. webhook不能按照正常预期 自动 git pull代码的问题排查以及修复
如下代码中的
sudo git pull $gitHttp 2>&1 其中2>$1是指将git过程的信息进行输出 ($0表示标准输入,$1表示标准输出,$2输出到文件中)
#!/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/gitRoot/$1"
#git 网址
gitHttp="http://192.168.2.20/llh/book.git" //自己仓库的链接
#gitHttp="http://192.168.2.20/llh/$1.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
git remote add origin $gitHttp
git branch --set-upstream-to=origin/master master
sudo git reset --hard origin/master
sudo git pull $gitHttp 2>&1
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 gitHttp 2>&1
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End"
exit
fi