【问题标题】:Deploy Github release to Node server with webhooks使用 webhook 将 Github 版本部署到 Node 服务器
【发布时间】:2015-08-25 23:45:37
【问题描述】:

我已经为 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 事件的标头。如果一切正常,它会检查它是预发布版还是完整版,并触发一个函数以部署到开发版或上线。

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

【问题讨论】:

    标签: javascript node.js git github webhooks


    【解决方案1】:

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

    折衷方案是目标机器需要安装 git 并具有从您的存储库中读取的凭据。

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

    【讨论】:

    • 我正在尝试根据版本自动化部署过程。我认为一旦设置,这将更快,更容易前进。只需在 Github 中发布新版本(无论是否预发布),即可在服务器的正确区域进行设置和运行以供测试或使用。
    • 感谢您迄今为止的帮助,但我离解决这个问题还差得远。我无法理解使用哪个实际代码来实现我的目标。我理解你已经解释过的概念。
    猜你喜欢
    • 2020-09-10
    • 2014-11-13
    • 1970-01-01
    • 2022-01-04
    • 2021-06-22
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 2017-02-21
    相关资源
    最近更新 更多