gitlab 钩子 php,gitlab通过webhook.php自动部署标签
//git webhook 自动部署脚本
$savePath = "/home/house/wxorder/";
$requestBody = file_get_contents("php://input");
if (empty($requestBody)) {
die('send fail');
}
//解析Git服务器通知过来的JSON信息
$content = json_decode($requestBody, true);
if ($content['object_kind'] == 'tag_push') {
preg_match("([Vv]?\d+\.\d+\.\d+)", $content['ref'], $match);
if (empty($match)) {
die('标签名不合法');
}
$tag = $match[0];
if(!$content['checkout_sha']){
shell_exec("cd {$savePath} && git tag -d {$tag}");
die('标签删除');
}
//拉取代码
shell_exec("cd {$savePath} && git pull");
//切换标签
shell_exec("cd {$savePath} && git checkout {$tag}");
//安装扩展 可选
shell_exec("cd {$savePath} && composer install");
//重启队列 可选
shell_exec("cd {$savePath} && php think queue:restart");
//校验状态
$status=shell_exec("cd {$savePath} && git status");
$now_branch = preg_match("([Vv]?\d+\.\d+\.\d+)", $status, $branch);
if(empty($branch) || $branch[0] != $tag){
die('部署成功');
}else{
die('部署失败');
}
}
可以在die处做邮件或钉钉通知
gitlab 钩子 php,gitlab通过webhook.php自动部署标签相关推荐
- Jenkins钩子实现代码提交/合并时自动部署
之前讲过如何实现jenkins代码部署,但每次提交/合并后都需要点击部署按钮,手动部署较为不便,所以就多加了个钩子,自动触发,但要注意的是,代码最好写完整再一次性push. 超详细教你用Jenkins ...
- 利用WebHook实现自动部署Git代码
目录 类型 coding 钩子 github 钩子 环境 服务端:阿里云虚拟主机(Ubuntu16.04) coding 自动部署 WebHook3.0 Windows 10 开发环境 部署 服务器虚 ...
- 设置webhook_使用 WebHook 来自动部署 NodeJS 项目!
前言 在我们本地开发好一个 NodeJS 项目,如果想要给别人看的话一般来说都是需要部署到服务器上面的.如果你使用 github 或者 coding 这里代码托管的服务,只需要在服务器安装好环境且安装 ...
- jenkins使用webhook实现自动部署
最近有这样一个需求,git仓代码频繁提交,服务器需要同步更新,每天jenkins jobs要更新个十来次,容易打断手上正在做的事情.如果git代码提交和服务器代码更新两个动作可以联动,那会非常省事. ...
- Gitlab CI/CD教程以及实战docker自动部署前端项目(全)
目录 前言 1. 技术知识 1.1 docker安装gitlab 1.2 docker安装gitlab-runner 1.3 .gitlab-ci.yml编写 1.4 使用docker部署前端项目 1 ...
- webhook php自动部署,git利用webhook实现自动部署
在项目部署时,之前采用的方式是登录服务器手动去pull代码,这样做很麻烦而且在服务器管理上也存在一些风险,github和gitlab都提供有webhook功能,可以在项目发生某些变化时,系统向指定的U ...
- 拒绝用户“root”@“localhost”的访问(使用密码:yes)_使用PHP和Github Webhook实现自动部署
前言 一般情况下,我们每次在使用Github时,每次push完代码后,都要手动到服务器上git pull一次,如果是vue之类的项目还要npm i和npm build. 当然我们可以写sh脚本来进行部 ...
- 利用gitHook实现自动部署
gitHook 当进行开发的环境在本地,而运行的环境要在服务端时,每一次提交代码都需要在服务端pull一次.而利用git的hooks功能,能够让我们省去这一步,下面我就以码云的webhooks为例,实 ...
- 统计gitlab代码行脚本_一点也不复杂, GitLab Webhook 自动部署代码
项目使用了gitlab托管,以前部署代码都是登录服务器,然后git pull代码.这样每次需要发布代码,都需要登录,太繁琐.很早就了解到 gitlab支持 webhook,能够自动同步代码.今天尝试搭 ...
最新文章
- 摄像头Camera标定Calibration原理Theory
- mysql python安装错误_mysql-python安装致命错误
- C语言实现:输入一串字符把里面的A、a字符替换成C输出
- 射影几何笔记6:齐次坐标下“点-线”几何关系
- 618 京东到家-小程序也狂欢
- Linux给用户设置全局变量
- ReverseFind
- python有趣的函数_Python中有趣在__call__函数
- 【Kafka】kafka OutOfMemoryError: Direct buffer memory Java heap space
- centos java7安装_Centos7 JDK7安装配置
- AcWing 849. Dijkstra求最短路 I(稠密图Dijkstra模板)
- RJ45网线接口详解
- 德州仪器发布99%高效GaN逆变器功率级的参考设计
- uni-app入门教程
- 魔兽 怎么查服务器在线人数,网易魔兽世界人口普查查看
- 开发三星GALAXY Tab应用程序
- iOS开发-ios7样式绕圈活动指示器(自定义Activity Indicator View)
- 东半球最先进的debug技巧
- springboot整合多线程ThreadPoolTaskExecutor
- 学以致用--游戏:孢子(Spore) 中 殖民地 最佳布局
热门文章
- bash shell命令(1)
- Hibernate Session的delete()方法
- Go语言连接 zookeeper
- CreateRemoteThread注入DLL
- LindDotNetCore~Mock对实际应用中的意义
- makefile使用.lds链接脚本以及 $@ ,$^, $, 解析
- js源生惯性滚动与回弹(备用)
- PING的原理以及ICMP协议
- 一个严重损坏Excel深度修复案例
- 闲话能力管理(Capacity Management)