我在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接收器位于同一服务器上。这样做的最佳方式是什么?
答案 0 :(得分:0)
如果你已经在使用github,一种简单的部署方法是检查目标机器上的代码。
权衡是目标机器需要安装git并具有从存储库中读取的凭据。
另一个选择是按照您在问题中的建议执行操作:使用上面的节点程序下载存档,并使用您选择的协议将其传输到您正在部署的计算机:FTP / ssh / rsync / scp等。< / p>