繁体   English   中英

使用Webhooks将Github版本部署到Node服务器

[英]Deploy Github release to Node server with webhooks

我已经在Github上为存储库设置了一个Webhook。 当我在Github中创建新版本时,我的Webhook接收器(在Node服务器上)会收到一个请求。 它的工作方式如下(使用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();

});

如您所见,它首先检查请求是否包含github事件的标头,其标值为release 如果一切都很好,它将检查它是预发行版还是完整发行版,并触发要部署到开发人员或现场的功能。

Webhook很好用,但是我正在努力寻找如何实际部署文件的方法。 是否使用某种FTP连接或Shell脚本执行此操作? dev和live目录与webhook接收器位于同一服务器上。 做这个的最好方式是什么?

如果您已经在使用github,则一种简单的部署方法是在目标计算机上签出代码。

一个折衷是目标计算机需要安装git并具有从存储库读取的凭据。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM