zoukankan      html  css  js  c++  java
  • git push之后服务器如何自动更新?

    在我们开发的过程中,我的开发流程一般都是
    说明 本地 -> git push -> 服务器 -> git pull -> npm i -> yarn build
    那么我们能不能去监听 git push 呢?
    如果我们每次push之后,服务器可以自动的去执行上面的后面的命令岂不是很好

    第一种方式

    使用 travis-ci.org -> 官网
    他的作用就是我们每次push之后,可以帮我们运行一遍,保证代码成功 build status
    但是如果travis需要操作服务器的话,那么这个过程就非常麻烦了,需要生成ssh,等等很多,这里面不过多介绍这种

    第二种(推荐)

    1. 创建一个仓库
    2. 进入设置
    3. 创建webhooks
    4. 在服务器上创建webhooks.js 写代码
    var http = require('http')
    var createHandler = require('github-webhook-handler')
    var handler = createHandler({ path: '/demo', secret: '123' })
    // 上面的 secret 保持和 GitHub 后台设置的一致
    
    function run_cmd(cmd, args, callback) {
        var spawn = require('child_process').spawn;
        var child = spawn(cmd, args);
        var resp = "";
    
        child.stdout.on('data', function (buffer) { resp += buffer.toString(); });
        child.stdout.on('end', function () { callback(resp) });
    }
    
    http.createServer(function (req, res) {
    
        handler(req, res, function (err) {
            res.statusCode = 404
            res.end('no such location')
        })
    }).listen(6000,() =>{
        console.log('WebHooks Listern at 6000');
    })
    handler.on('push', function (event) {
      console.log('Received a push event for %s to %s',
        event.payload.repository.name,
        event.payload.ref);
        // 分支判断
      if(event.payload.ref === 'refs/heads/master'){
          console.log('deploy master..')
          run_cmd('sh', ['./deploy.sh'], function(text){ console.log(text) });
      }
    })
    

    需要修改的地方

    1. 端口改为创建webooks的端口
    2. 第三行的path要和webhooks后面的路径匹配, secret 也要和创建时匹配
    3. 在下面./depoly.sh是最关键的,也就是每次push执行的命令
    4. 在服务器的这个文件的目录下创建 deploy.sh ,文件内容如下
    cd /usr/local/nginx/html/meituan
    git pull
    npm i
    yarn build
    
    1. 切记服务器要对外开放6000端口才行,并且这个webooks要一直开启,推荐使用pm2开启git push之后服务器如何自动更新?
  • 相关阅读:
    Unable to lock the administration directory (/var/lib/dpkg/)解决办法
    Linux实训——搭建动态网站
    Linux实训——搭建HTTP服务器
    小程序学习视频教程
    数组的所有方法
    小程序组件封装步骤
    微信小程序生成图片学习
    小程序组件封装学习地址
    开发者在 onPageNotFound 回调中进行重定向处理onPageNotFound(Object)
    小程序中view的自定义属性获取
  • 原文地址:https://www.cnblogs.com/sunhang32/p/12272781.html
Copyright © 2011-2022 走看看