• 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之后服务器如何自动更新?
  • 相关阅读:
    8.电影推荐
    一.Memcached企业服务
    7.学完linux系统运维到底可以做什么?
    svn+jenkins自动部署
    关于gitlab+jenkins自动部署代码的实现
    Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre
    php实现雪花算法(ID递增)
    php使用rdkafka进行消费
    Burp破解安装(1.7和2.0)
    在已有lnmp环境的基础上安装PHP7
  • 原文地址:https://www.cnblogs.com/sunhang32/p/12272781.html
Copyright © 2020-2023  润新知