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之后服务器如何自动更新?
  • 相关阅读:
    加入创业公司有什么利弊
    Find Minimum in Rotated Sorted Array II
    Search in Rotated Sorted Array II
    Search in Rotated Sorted Array
    Find Minimum in Rotated Sorted Array
    Remove Duplicates from Sorted Array
    Spiral Matrix
    Spiral Matrix II
    Symmetric Tree
    Rotate Image
  • 原文地址:https://www.cnblogs.com/sunhang32/p/12272781.html
Copyright © 2011-2022 走看看