美文网首页
前端自动化部署gitlib webhook

前端自动化部署gitlib webhook

作者: lsh1992 | 来源:发表于2020-07-23 16:18 被阅读0次

    1.在代码仓库找到webhook设置:


    image.png

    2.创建接收消息的接口,已nodejs为例:

    • 新建webhook.js文件,内容如下:
    • 运行webhook.js文件,如: node webhook.js
    • 成功启动后,直接在gitlib测试,或推送代码到仓库即可看到请求响应


      image.png
      image.png

    错误响应


    image.png

    成功响应


    image.png
    var http = require("http");
    var createHandler = require("node-gitlab-webhook");
    // var handler = createHandler([ // 多个仓库
    //   { path: "/webhook1", secret: "设置的秘钥" },
    //   { path: "/webhook2", secret: "设置的秘钥" }
    // ]);
    var handler = createHandler({ path: "/", secret: "设置的秘钥" }); // 单个仓库
    
    http.createServer(function(req, res) {
      handler(req, res, function(err) {
        res.statusCode = 404;
        res.end("no such location");
      });
    }).listen(17000);
    
    handler.on("error", function(err) {
      console.error("Error:", err.message);
    });
    
    handler.on("push", function(event) {
      console.log(
        "Received a push event for %s to %s",
        event.payload.repository.name,
        event.payload.ref
      );
      switch (event.path) {
        case "/": // 当有多个仓库时,根据path判断不同的仓库
          // 判断不同的分支
          if (event.payload.ref.indexOf("/release/") > -1) { // release分支
            // 1、调用shell脚本,执行命令,拉取代码
            // 2、打包,并且把打包后的静态文件移动到相应的位置
            // 3、外部成功访问,自动部署完成
          }
          break;
        case "/other":
          // 处理其他对应仓库
          break;
        default:
          // 处理其他
          break;
      }
    });
    

    相关文章

      网友评论

          本文标题:前端自动化部署gitlib webhook

          本文链接:https://www.haomeiwen.com/subject/lfshlktx.html