Git----使用WebHook实现代码自动部署

Posted leedom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git----使用WebHook实现代码自动部署相关的知识,希望对你有一定的参考价值。

  起因: 经常本地push到gitee等线上代码仓库,然后登陆服务器在进行pull,很麻烦,想偷懒怎么办?使用git的webhook实现!

1.实现原理

  1.1本地提交推送

  1.2线上仓库监听push动作,也就是webhook,回调url触发服务器的pull操作

  1.3服务器pull操作

2.实现步骤

  2.1本地和服务器安装git(略过)

  2.2码云进入项目->管理->webhook设置,(其他原理一样 git,coding)

技术分享图片

  url就是你服务器上可以访问的地址, 该地址是进行pull命令的文件,可以是php,python,node等等等,勾选push就是当push动作的时候触发这个url,访问服务器进行pull操作,勾选其他的就是其他的动作,这里不做解释. 添加后,会有测试按钮,建议代码写上测试一下

1 shell_exec(‘ls‘)

  如果返回文件目录,则表示该权限可以执行,服务器是LNMP, 然后只需要一行代码(我的需求就是自动拉取,所有不做深入的操作,比如验证,日志,分类什么的可以自己补充)通过代码可以查看回调的信息,根据信息进行操作

$request = json_decode(file_get_contents(‘php://input‘), true)

  拉取动作

echo shell_exec(‘cd your_path && git pull‘)

3.一些坑

  如果不成功,建议 LL 命令查看一下用户权限 一般PHP是www-data用户, 使用

sudo chown -R :www-data your_path
sudo chmod -R g+w  your_path

  主要是权限问题,这样应该可以啦! 路由什么的自己去搞定啦! 接下来就可以开心的本地push服务器自己去pull啦~哈哈哈

 

以上是关于Git----使用WebHook实现代码自动部署的主要内容,如果未能解决你的问题,请参考以下文章

git webhook自动部署服务端代码django python docker等

Jenkins+git+webhook自动触发部署和测试任务

Webhook实践 —— PHP自动部署

码云Webhook触发Jenkins自动构建 - Jenkins演练

jenkins 配置 gitlab webhook 实现自动发布

gogs结合git-webhook自动部署