//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自动部署标签相关推荐

  1. Jenkins钩子实现代码提交/合并时自动部署

    之前讲过如何实现jenkins代码部署,但每次提交/合并后都需要点击部署按钮,手动部署较为不便,所以就多加了个钩子,自动触发,但要注意的是,代码最好写完整再一次性push. 超详细教你用Jenkins ...

  2. 利用WebHook实现自动部署Git代码

    目录 类型 coding 钩子 github 钩子 环境 服务端:阿里云虚拟主机(Ubuntu16.04) coding 自动部署 WebHook3.0 Windows 10 开发环境 部署 服务器虚 ...

  3. 设置webhook_使用 WebHook 来自动部署 NodeJS 项目!

    前言 在我们本地开发好一个 NodeJS 项目,如果想要给别人看的话一般来说都是需要部署到服务器上面的.如果你使用 github 或者 coding 这里代码托管的服务,只需要在服务器安装好环境且安装 ...

  4. jenkins使用webhook实现自动部署

    最近有这样一个需求,git仓代码频繁提交,服务器需要同步更新,每天jenkins jobs要更新个十来次,容易打断手上正在做的事情.如果git代码提交和服务器代码更新两个动作可以联动,那会非常省事. ...

  5. Gitlab CI/CD教程以及实战docker自动部署前端项目(全)

    目录 前言 1. 技术知识 1.1 docker安装gitlab 1.2 docker安装gitlab-runner 1.3 .gitlab-ci.yml编写 1.4 使用docker部署前端项目 1 ...

  6. webhook php自动部署,git利用webhook实现自动部署​

    在项目部署时,之前采用的方式是登录服务器手动去pull代码,这样做很麻烦而且在服务器管理上也存在一些风险,github和gitlab都提供有webhook功能,可以在项目发生某些变化时,系统向指定的U ...

  7. 拒绝用户“root”@“localhost”的访问(使用密码:yes)_使用PHP和Github Webhook实现自动部署

    前言 一般情况下,我们每次在使用Github时,每次push完代码后,都要手动到服务器上git pull一次,如果是vue之类的项目还要npm i和npm build. 当然我们可以写sh脚本来进行部 ...

  8. 利用gitHook实现自动部署

    gitHook 当进行开发的环境在本地,而运行的环境要在服务端时,每一次提交代码都需要在服务端pull一次.而利用git的hooks功能,能够让我们省去这一步,下面我就以码云的webhooks为例,实 ...

  9. 统计gitlab代码行脚本_一点也不复杂, GitLab Webhook 自动部署代码

    项目使用了gitlab托管,以前部署代码都是登录服务器,然后git pull代码.这样每次需要发布代码,都需要登录,太繁琐.很早就了解到 gitlab支持 webhook,能够自动同步代码.今天尝试搭 ...

最新文章

  1. 摄像头Camera标定Calibration原理Theory
  2. mysql python安装错误_mysql-python安装致命错误
  3. C语言实现:输入一串字符把里面的A、a字符替换成C输出
  4. 射影几何笔记6:齐次坐标下“点-线”几何关系
  5. 618 京东到家-小程序也狂欢
  6. Linux给用户设置全局变量
  7. ReverseFind
  8. python有趣的函数_Python中有趣在__call__函数
  9. 【Kafka】kafka OutOfMemoryError: Direct buffer memory Java heap space
  10. centos java7安装_Centos7 JDK7安装配置
  11. AcWing 849. Dijkstra求最短路 I(稠密图Dijkstra模板)
  12. RJ45网线接口详解
  13. 德州仪器发布99%高效GaN逆变器功率级的参考设计
  14. uni-app入门教程
  15. 魔兽 怎么查服务器在线人数,网易魔兽世界人口普查查看
  16. 开发三星GALAXY Tab应用程序
  17. iOS开发-ios7样式绕圈活动指示器(自定义Activity Indicator View)
  18. 东半球最先进的debug技巧
  19. springboot整合多线程ThreadPoolTaskExecutor
  20. 学以致用--游戏:孢子(Spore) 中 殖民地 最佳布局

热门文章

  1. bash shell命令(1)
  2. Hibernate Session的delete()方法
  3. Go语言连接 zookeeper
  4. CreateRemoteThread注入DLL
  5. LindDotNetCore~Mock对实际应用中的意义
  6. makefile使用.lds链接脚本以及 $@ ,$^, $, 解析
  7. js源生惯性滚动与回弹(备用)
  8. PING的原理以及ICMP协议
  9. 一个严重损坏Excel深度修复案例
  10. 闲话能力管理(Capacity Management)