宝塔服务与码云同步代码
发表于 2021-1-14 | | 开发笔记

1、服务器安装git

yum install git



2、服务器生成公钥

cd ~/.ssh

ssh-keygen -t rsa

cat id_rsa.pub



3、把公钥粘贴到码云

项目-》部署公钥管理-》添加公钥



4、宝塔安装webhook



5、添加webhook,脚本如下(注意:宝塔新建的项目目录最好和码云的项目目录名称一致,便于用一个参数传递 $1)

!/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:congjian/$1.git"

 

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 "End"

        exit

else

        echo "该项目路径不存在"

        echo "End"

        exit

fi



6、码云设置

项目-》WebHooks-》添加



@param access_key string HOOK密钥

@param param string 自定义参数(在hook脚本中使用$1接收,该参数一般定义为项目名称)

URL : http://面板/hook?access_key=123&param=aaa

密码 : access_key

事件 : 选择push则本地推送会自动同步到服务器相应目录



7、测试

如果没有成功则尝试登录服务器ssh手动git pull

好像首次要先登录服务器ssh手动git pull一下保存一下默认设置,之后就可以了

TOP