专栏名称: CatCoder
CatCoder写字的地方,写一些自己的所思所想
目录
相关文章推荐
泉安安海在线  ·  泉州刚刚发布:延长至2月28日! ·  2 天前  
海峡都市报闽南新闻  ·  泉州市人民政府发布人事任免! ·  2 天前  
科幻世界SFW  ·  蛇年说蛇:人类文化中“神魔难辨”的蛇形象 ·  5 天前  
51好读  ›  专栏  ›  CatCoder

使用Coding的WebHook自动更新服务器代码

CatCoder  · 公众号  ·  · 2017-07-13 17:28

正文

开发微信项目的时候很多测试需要在手机进行,也就需要服务器也要每次变动更新代码,一个功能可能需要几十次的 push pull 还是挺麻烦的。

之前试过使用git自身的hook功能,不过尝试了几次都没有成功。

不过今天发现Coding上的项目里有 WebHook 功能,之前使用它和聊天工具结合,有人Push代码就提醒下,这次就尝试在触发事件后推送到服务器,这样就能实现自动部署了。

首先 先在Coding的项目中的 设置 -> WebHook 菜单下使用 新建Hook 新建一个触发。填入自己接收推送的URL即可:



第二步 是在自己的项目中配置路由并在处理逻辑中执行 git pull 命令。

这里我的项目中使用的是 Laravel 5.2 ,路由指向处理方法:

  1. Route::post('/gitpush', 'CodingController@doGitPull'); //git push hook

doGitPull中执行shell命令:

  1.    /**

  2.     * 执行git pull命令

  3.     */

  4.    public function doGitPull() {

  5.        Log::debug('Git有新的版本');

  6.        //执行命令

  7.        $out = exec('cd /home/www/your-project-dir && git pull');

  8.        Log::debug($out);

  9.    }

这里是两个命令的结合,先 cd 到对应目录,然后执行 git pull 命令。

测试,不成功!

这里遇到的问题基本都是权限问题。测试服务器是使用的是nginx,用户为www,而当初 git clone 项目代码的时候使用的是root,并且coding中的 部署公钥 设置也是root生成的,所以在项目中执行的命令权限不足,处理起来也比较简单。

一、生成www对应的密钥

  1.    







请到「今天看啥」查看全文