如何使用 git 部署到测试服务器?
How can I use git to deploy to test server?
几年前用过redhat的open shift。更新服务器的方式是推送到 git 仓库。推送更改后,您可以在浏览器中测试您的应用程序。
我想在我的一个 VM 中实现它以进行测试。这样每当我推送到回购协议时,测试人员就可以立即看到我的更改。我在云 VM 中执行此操作,因为将对其进行测试的人在另一个国家/地区。我正在使用 nginx、pm2、nodejs 和 express。
我知道我可以直接通过 ssh 连接到服务器,提取更改,重新启动 pm2。但如果有更自动化的方式,那就更好了。
您所描述的称为 Continuos Integration/Continuous 部署,通常称为 CI/CD。有专门为此制作的工具。两个主要参与者是 jetbrains 的 TeamCity(根据您描述的项目规模免费使用)和 Jenkins(开源)。我建议您在 CI/CD 上搜索使用这两种产品之一的教程。
您可能想查看服务器端 git 挂钩。您可以在收到 git 推送时在服务器上执行 bash 脚本,并执行更新服务器所需的一切。
简要介绍一下:
挂钩可以在 .git/hooks
下找到。您将在此处找到以下文件:
- 前push.sample
- 提交-msg.sample
- 前rebase.sample
- post-update.sample
- 准备提交-msg.sample
- 前applypatch.sample
- update.sample
- 前commit.sample
举个例子,在你的服务器上,如果你将以下内容添加到你的 post-update 挂钩中,服务器将在收到提交时向你发送一封电子邮件:
#!/bin/bash
git show --name-status | mail -s "Received Push" youremail@email.com
在此文件中,您可能希望编写脚本以使用新收到的数据重建网站!
几年前用过redhat的open shift。更新服务器的方式是推送到 git 仓库。推送更改后,您可以在浏览器中测试您的应用程序。
我想在我的一个 VM 中实现它以进行测试。这样每当我推送到回购协议时,测试人员就可以立即看到我的更改。我在云 VM 中执行此操作,因为将对其进行测试的人在另一个国家/地区。我正在使用 nginx、pm2、nodejs 和 express。
我知道我可以直接通过 ssh 连接到服务器,提取更改,重新启动 pm2。但如果有更自动化的方式,那就更好了。
您所描述的称为 Continuos Integration/Continuous 部署,通常称为 CI/CD。有专门为此制作的工具。两个主要参与者是 jetbrains 的 TeamCity(根据您描述的项目规模免费使用)和 Jenkins(开源)。我建议您在 CI/CD 上搜索使用这两种产品之一的教程。
您可能想查看服务器端 git 挂钩。您可以在收到 git 推送时在服务器上执行 bash 脚本,并执行更新服务器所需的一切。
简要介绍一下:
挂钩可以在 .git/hooks
下找到。您将在此处找到以下文件:
- 前push.sample
- 提交-msg.sample
- 前rebase.sample
- post-update.sample
- 准备提交-msg.sample
- 前applypatch.sample
- update.sample
- 前commit.sample
举个例子,在你的服务器上,如果你将以下内容添加到你的 post-update 挂钩中,服务器将在收到提交时向你发送一封电子邮件:
#!/bin/bash
git show --name-status | mail -s "Received Push" youremail@email.com
在此文件中,您可能希望编写脚本以使用新收到的数据重建网站!