使用webhooks将Github发布部署到Node服务器

时间:2015-08-25 15:34:52

标签: javascript node.js git github webhooks

我在Github上为存储库设置了一个webhook。当我在Github中创建新版本时,我的webhook接收器(在节点服务器上)收到请求。它的工作原理如下(使用Express):

app.post("/", function(req, res){  

  //request is not a github event
  if (req.headers["x-github-event"] != "release") return;

  //request is a pre-release
  else if (req.body.release.prerelease) deployToDev();

  //request is full release
  else if (!req.body.release.prerelease) deployToLive();

});

如您所见,它首先检查请求是否包含值为release的github事件的标头。如果这一切都很好,它会检查它是预发布版还是完整版,并激活一个函数来部署到dev或live。

webhook工作得很好,但我很难找到如何实际部署文件。我是否使用某种FTP连接或shell脚本执行此操作? dev和live目录与webhook接收器位于同一服务器上。这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

如果你已经在使用github,一种简单的部署方法是检查目标机器上的代码。

权衡是目标机器需要安装git并具有从存储库中读取的凭据。

另一个选择是按照您在问题中的建议执行操作:使用上面的节点程序下载存档,并使用您选择的协议将其传输到您正在部署的计算机:FTP / ssh / rsync / scp等。< / p>