几年前,我使用过redhat的开放式班次。更新服务器的方法是通过推送到git repo。推送更改后,您可以在浏览器中测试您的应用。
我想在我的一个虚拟机中实现该功能以进行测试。这样,每当我推送到仓库时,测试人员就可以立即看到我的更改。我正在云VM中进行测试,因为要进行测试的人员在另一个国家。我正在使用nginx,pm2,nodejs和express。
我了解我可以将ssh传送到服务器,进行更改,然后重新启动pm2。但是,如果有一种更自动化的方法,那会更好。
答案 0 :(得分:1)
您所描述的被称为Continuos集成/连续部署,通常称为CI / CD。有专门为此目的设计的工具。两个主要参与者是jetbrains的TeamCity(根据您描述的项目大小免费使用)和Jenkins(开源)。我建议您搜索使用这两种产品之一的CI / CD教程。
答案 1 :(得分:1)
您可能想研究服务器端的git钩子。您可以在收到git push时在服务器上执行bash脚本,并执行更新服务器所需的一切。
要简要介绍一下,
可以在.git/hooks
下找到钩子。在这里,您将找到以下文件:
举个例子,在服务器上,如果将以下内容添加到更新后挂钩中,则服务器将在收到提交时向您发送电子邮件:
#!/bin/bash
git show --name-status | mail -s "Received Push" youremail@email.com
在此文件中,您可能想编写脚本以使用新接收的数据重建网站!