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

宝塔面板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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

maven 配置篇

什么是pom? pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性&…

LeetCode 634. 寻找数组的错位排列(DP)

文章目录1. 题目2. 解题1. 题目 在组合数学中,如果一个排列中所有元素都不在原先的位置上,那么这个排列就被称为错位排列。 给定一个从 1 到 n 升序排列的数组,你可以计算出总共有多少个不同的错位排列吗? 由于答案可能非常大&…

mysql windows ad_mysql windows安装

http://blog.csdn.net/tossgoon/article/details/444124911、从该地址http://dev.mysql.com/downloads/mysql/中选择windows的版本,选择下载。2、将下载的压缩包解压。3、将根目录下的my-default.ini复制重命名为my.ini。4、打开my.ini文件,将下面的源码…

python得到列表list的交集与差集

python 神勇,得到两个列表的差集和交集,根本不用循环,一句话就可以搞定 交集: b1[1,2,3]b2[2,3,4]b3 [val for val in b1 if val in b2]print b3 差集: b1[1,2,3]b2[2,3,4]b3 [val for val in b1 if val not in b2]p…

LeetCode 489. 扫地机器人(DFS)

文章目录1. 题目2. 解题1. 题目 房间(用格栅表示)中有一个扫地机器人。 格栅中的每一个格子有空和障碍物两种可能。 扫地机器人提供4个API,可以向前进,向左转或者向右转。每次转弯90度。 当扫地机器人试图进入障碍物格子时&…

mysql存储大量日志_海量日志数据如何处理统计?

虽然是一个PostgreSQL的问题,但是打了各种数据库标签。那么我就从MongoDB和NoSQL的角度说说这个问题。因为一些情况不是特别清楚,基于自己的假设来回答,如果有和你情况不符的地方再提出来。数据库的日常应用无非OLAP和OLTP两大类,…

【原创】软件测试工程师基础技能+

软件测试工程师,工作之余应该看些什么、学些什么?通常情况下一位软件测试工程师需要具备哪些必须的技能? 最佳隐形技能 ★★开发语言知识背景对被测试对象使用的语言有一定的了解,这样有助于测试工作的开展,同时&#…

LeetCode 1215. 步进数(BFS/DFS)

文章目录1. 题目2. 解题2.1 BFS2.2 DFS1. 题目 如果一个整数上的每一位数字与其相邻位上的数字的绝对差都是 1,那么这个数就是一个「步进数」。 例如,321 是一个步进数,而 421 不是。 给你两个整数,low 和 high,请你…

python自动化入门_python自动化-python入门

1、安装python,配置环境变量。windows下是安装路径直接配到环境变量里面就可以mac添加环境变量在~/.bash_profile这个文件中,添加一行alias python"/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/bin/python3.7"问…

别人叫我程序猿,我称自己攻城狮。没日没夜写代码,不知何日涨工资?

别人叫我程序猿, 我称自己攻城狮。 没日没夜写代码, 不知何日涨工资? 转载于:https://www.cnblogs.com/lzkwin/archive/2013/01/27/2879036.html

LeetCode 364. 加权嵌套序列和 II(重复叠加)

文章目录1. 题目2. 解题1. 题目 给一个嵌套整数序列,请你返回每个数字在序列中的加权和,它们的权重由它们的深度决定。 序列中的每一个元素要么是一个整数,要么是一个序列(这个序列中的每个元素也同样是整数或序列)。…

python节日贺卡图片大全_新年贺卡图片_新年贺卡手工制作图片

新年贺卡图片_新年贺卡手工制作图片导读:小编根据大家的需要整理了一份关于《新年贺卡图片_新年贺卡手工制作图片》的内容,具体内容:新年到来,制作一张手工图片,送上新年满满的祝福,本文是小编整理的新年贺…

POJ 计算几何(3)

计算几何学 半平面求交 poj3384,poj2540 ( poj3335, poj3130, poj 1474, poj1279, poj3525) 可视图的建立 poj2966 点集最小圆覆盖 zju1450 对踵点 poj2079 半平面求交 详见:http://www.cnblogs.com/vongang/archive/2013/02/19/2917246.html 转载于:https…

LeetCode 第 31 场双周赛(273/2767,前9.87%,第3次全部通过)

文章目录1. 比赛结果2. 题目1. LeetCode 5456. 在区间范围内统计奇数数目 easy2. LeetCode 5457. 和为奇数的子数组数目 medium3. LeetCode 5458. 字符串的好分割数目 medium4. LeetCode 5459. 形成目标数组的子数组最少增加次数 hard1. 比赛结果 双周赛题目比较简单。第一题没…

java发送outlook邮件_通过Java代码发送OutLook邮件

准备我们想通过Java代码实现发送OutLook邮件,必须准备以下材料:OutLook邮箱目标邮箱查看OutLook邮箱信息打开OutLook邮箱,在Settings中搜索或找到SMTP:打开以下界面,拿到我们想要的数据(ServerName 以及 Port)&#xf…

makefile笔记

make-k:即使make程序出错也继续向下运行-n:将原来执行的命令输出,而不执行-f:指定makefile的文件名称-p:打印出系统缺省定义的内部规则下面放我项目中的一个比较详细的Makefile文件: #****************************************************************…

LeetCode 第 199 场周赛(757/5231,前14.5%)

文章目录1. 比赛结果2. 题目1. LeetCode 5472. 重新排列字符串 easy2. LeetCode 5473. 灯泡开关 IV medium3. LeetCode 5474. 好叶子节点对的数量 medium4. LeetCode 5462. 压缩字符串 II hard1. 比赛结果 第一题失误,点完提交就跑了,没想到。。第四题D…

java x.length_Java中的length和length()

红颜莎娜稍微简化一下,您可以认为它是一种特殊情况,而不是普通类(有点像基元,但不是)。字符串和所有集合都是类,因此获取大小,长度或类似内容的方法。我猜设计的原因是性能。如果他们今天创建了它,他们可能…

asp.net 使用Master模板页需要注意

1. 凡是runat"server"的标签&#xff0c;所在的页面又使用了模板页Master&#xff0c;那么客户端生成的html源码中它的ID会自动改变&#xff0c;因而会导致该页的js中一ID定位的代码失灵。 2. 模板页中常常在<head></head>中写一个HeadContentPlaceHolde…

java生产者消费者gui_java理论之java--GUI(图形用户管理)与 IO/流

GUI(图形用户管理)一 GUI的组件和容器Component(所有可显示的元素):1:它的直接功能子类---Button:对应事件:java.awt.event.ActionEvent;处理函数:public void actionPerformed(ActionEvent e)---TextFiled:对应事件:java.awt.event.ActionEvent;处理函数:public void actionPe…