【发布时间】:2022-11-27 03:37:50
【问题描述】:
所以我的问题是我有一个在树莓派上运行的本地 nodejs 服务器。该服务器正在使用许多端口和数据库等等。所以我的要求是,当我将新的源代码上传到我的 github 时,我需要我的本地服务器知道新代码可用并且它应该下载它并且一旦完成它应该重新启动服务器。
我可以让我的本地服务器知道新代码可用,但是如何下载它并在下载代码后重新启动服务器。
【问题讨论】:
标签: node.js github nodejs-server
所以我的问题是我有一个在树莓派上运行的本地 nodejs 服务器。该服务器正在使用许多端口和数据库等等。所以我的要求是,当我将新的源代码上传到我的 github 时,我需要我的本地服务器知道新代码可用并且它应该下载它并且一旦完成它应该重新启动服务器。
我可以让我的本地服务器知道新代码可用,但是如何下载它并在下载代码后重新启动服务器。
【问题讨论】:
标签: node.js github nodejs-server
您可以使用 GitHub Webhooks 每次将新代码推送到 master 分支时,它都会触发一个 POST 请求到您的服务器(不是您的主要服务器,而是您需要编写的不同服务器)。此服务器将侦听此 webhook 请求并拉取更改并重新启动您的主服务器(请参阅节点 child_preocess/exec)。
或者,您可以将 GitHub Actions 与 2 个作业一起使用,这将在每次推送到 master 时触发。首先使用 rsync 操作发送您的新存储库文件。然后执行 SSH 操作以重新启动您的服务器。
这两种解决方案都希望 Github 服务器可以访问您的服务器。
【讨论】: