使用hooks自动监测git仓库更改并拉取
时间:2022-07-25
本文章向大家介绍使用hooks自动监测git仓库更改并拉取,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
我们在务器上使用宝塔进行操作,使用宝塔比较直接,可视化,各种操作和安装东西很方便(如果只是想安装一些东西,快速搭建),后面也会继续使用宝塔为网站安装https
证书,使用Let's Encrypt
申请免费的证书并配置
首先在软件商店搜索webhookl
安装,添加,名称自定以,执行脚本根据下面的自己更改(如果执行没有效果可以自行根据自己的环境及情况更改,每次回调日志可以在宝塔中看到)
#!/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
gitPath="/www/wwwroot/项目目录"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
echo "目录存在并进入目录wwwroot"
cd $gitPath
git fetch --all
git reset --hard origin/master
git pull
echo "设置目录组合拥有者"
sudo chown -R www:www $gitPath
echo "设置目录权限"
sudo chmod -R 755 $gitPath
echo "End"
exit
else
echo "该项目路径不存在"
echo "新建项目目录"
cd /www/wwwroot/
echo "克隆最新的项目文件"
git clone 仓库地址 ./项目目录
echo "设置目录组合拥有者"
sudo chown -R www:www $gitPath
echo "设置目录权限"
sudo chmod -R 755 $gitPath
cd $gitPath
git checkout master
echo "End"
exit
fi
修改完成后到 github 的项目仓库里,setting
里的webhooks
将宝塔生成的密匙的url
添加进去
注意
这一步url
的param
不一定要跟宝塔一样,这个就是脚本里的$1
变量,这个脚本是把自己的仓库名设置为了param
,也就是把上面图最后的aaa
改为了resp_name
.
测试 注意 不要在宝塔里测试,去github
仓库里发请求(后面改为了coding
,改完bash
脚本后最好重启一下宝塔面板)
更改hexo
的一些内容,查看travisci
部署情况,部署完成查看服务器的仓库是否更新
- AVFoundation 框架初探究(二)
- 关于视图和存储过程的权限问题探究 (r9笔记第87天)
- Java基础-day08-超市购物系统总结
- AVFoundation 框架初探究(一)
- 【Go 语言社区】 HTML5 前端--数据保存实例
- crontab设置导致的服务器进程异常问题 (r10笔记第4天)
- 一条SQL语句的执行计划变化探究(r10笔记第3天)
- tensorflow(一)windows 10 python3.6安装tensorflow1.4与基本概念解读
- 基于AgileEAS.NET SOA 中间件领域模型数据器快速打造自己的代码生成器
- Java基础-day07-代码题-自定义数据类型;ArrayList集合
- 一条报警信息的快速处理和分析(r9笔记第99天)
- 【Go 语言社区】解析Go语言编程中的struct结构
- centos+scala2.11.4+hadoop2.3+spark1.3.1环境搭建
- 【Go 语言社区】Golang 语言获取本机逻辑CPU数量的方法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 单细胞转录组高级分析二:转录调控网络分析
- 关于数组内元素是否会被改变的思考
- 排序之选择排序实现(swift)
- 去除友盟等第三方SDK失败的解决办法(clang: error: no such file or directory:xx)
- iOS踩坑之多代理模式使用注意
- 单细胞转录组高级分析三:细胞通讯分析
- 单细胞转录组高级分析四:scRNA数据推断CNV
- 0808-7.1.1-如何在CDP7.1.1指定Hive SQL的资源池队列
- iOS多线程之GCD、OperationQueue 对比和实践记录
- singleR的7个数据库文件下载失败的解决方案
- Spring Boot 如何快速集成 Redis 哨兵?
- 一行命令实现成“吨”测试数据的转码
- Jenkins参数化构建与触发
- 数据无法模拟,自动化受阻怎么办?
- Quickprop介绍:一个加速梯度下降的学习方法