如何使用git部署以测试服务器?

时间:2018-09-26 21:48:36

标签: node.js git nginx deployment pm2

几年前,我使用过redhat的开放式班次。更新服务器的方法是通过推送到git repo。推送更改后,您可以在浏览器中测试您的应用。

我想在我的一个虚拟机中实现该功能以进行测试。这样,每当我推送到仓库时,测试人员就可以立即看到我的更改。我正在云VM中进行测试,因为要进行测试的人员在另一个国家。我正在使用nginx,pm2,nodejs和express。

我了解我可以将ssh传送到服务器,进行更改,然后重新启动pm2。但是,如果有一种更自动化的方法,那会更好。

2 个答案:

答案 0 :(得分:1)

您所描述的被称为Continuos集成/连续部署,通常称为CI / CD。有专门为此目的设计的工具。两个主要参与者是jetbrains的TeamCity(根据您描述的项目大小免费使用)和Jenkins(开源)。我建议您搜索使用这两种产品之一的CI / CD教程。

答案 1 :(得分:1)

您可能想研究服务器端的git钩子。您可以在收到git push时在服务器上执行bash脚本,并执行更新服务器所需的一切。

要简要介绍一下,

可以在.git/hooks下找到钩子。在这里,您将找到以下文件:

  • push.sample
  • commit-msg.sample
  • pre-rebase.sample
  • post-update.sample
  • prepare-commit-msg.sample
  • pre-applypatch.sample
  • update.sample
  • 预提交样本

举个例子,在服务器上,如果将以下内容添加到更新后挂钩中,则服务器将在收到提交时向您发送电子邮件:

#!/bin/bash
git show --name-status | mail -s "Received Push" youremail@email.com

在此文件中,您可能想编写脚本以使用新接收的数据重建网站!