宝塔面板webhook配合gitlab完成git钩子的搭建

我们假设你了解了gitlab的webhook的设置。熟悉宝塔面板并会安装宝塔webhook。
如果还没掌握,请自行去了解。

一、在宝塔面板中的软件中安装"宝塔WebHook"

二、根据需求修改以下的文件。

#!/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="http://git.hxsen.com/houxin/$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
        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

这里注意几个地方修改

1.gitPath的配置

gitPath就是你的网站的目录
比如,我的网站的运行目录/www/wwwroot/blog,这里填写/www/wwwroot/$1
其中。blog用$1代替,制作通用的git钩子。

2.gitHttp这里是你git项目的地址,就是使用git面板。拉取git文件的地址。

比如,我的git服务路径是http://git.hxsen.com/houxin/blog.git,
这里填写的是http://git.hxsen.com/houxin/$1.git,同样是为了做通用的设置。
在git钩子中,我把项目名以变量的形式传过来,就可以了。
如果你用了开放的git管理系统如,如gitee,你应该这么写

https://gitee.com/你的地址/$1.git
三、最后一步,就是获取gitlab需要你填写的url路径了。

打开宝塔webhook,找到自己添加的任务。点击"查看秘钥",就会出现以下信息

宝塔WebHook使用方法:
GET/POST:
http://110.28.36.47:8888/hook?access_key=CpQE4U6A3IxvkiedA58WBD8uDPNVlebNAMJe9toQjGdMTX7H&param=aaa
@param access_key string HOOK密钥
@param param string 自定义参数(在hook脚本中使用$1接收)

注意,这里的面板,是你登录面板的地址。一般都不是80端口,请带端口号。
比如:
120.149.215.141:8888
或者简易版的去除参数。去除了自动创建目录的操作,测试正常运行
代码如下:

#!/bin/bash
   
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#git项目路径
gitPath="/www/wwwroot/shangyfy_test"
#git 网址
gitHttp="http://120.79.8.110:8090/web/test.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
        sudo git pull        
        echo "设置目录权限"
        sudo chown -R www:www $gitPath
        echo "End"
        exit
fi

四、建议使用下面的更加的精简的版本,对于敏感的操作,建议我们自己做。让程序做简单重复的工作就行

#!/bin/bash
   
echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "Start"
#git项目路径
gitPath="/www/wwwroot/hxsen"
#git 网址
gitHttp="https://gitee.com/hx-self/hxsen.git"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
        cd $gitPath
        echo "拉取最新的项目文件"
        #sudo git reset --hard origin/master
        sudo git pull
        echo "设置目录权限"
        sudo chown -R www:www $gitPath
        echo "End"
        exit
fi
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值