阿里云与GitHub结合实现Node项目的自动化部署
- 648字
- 3分钟
- 2024-06-18
在这篇文章中,我将介绍如何将GitHub上的Node.js项目自动化部署到阿里云服务器。我们将使用GitHub Actions来实现CI/CD(持续集成和持续部署),并结合阿里云服务器来完成部署。
前提条件
在开始之前,请确保你已经具备以下条件:
- 一个GitHub账户和一个Node.js项目存储库。
- 一个阿里云ECS实例,安装了Alibaba Cloud Linux操作系统。
- 在ECS实例上安装了Node.js和PM2(用于Node.js应用的进程管理)。
步骤概述
- 配置阿里云服务器。
- 在GitHub上配置GitHub Actions。
- 编写部署脚本。
配置阿里云服务器
首先,登录你的阿里云ECS实例,并确保安装了必要的软件。
安装Node.js
安装PM2
配置GitHub Actions
在你的GitHub存储库中,创建一个.github/workflows
目录,并在其中创建一个新的工作流文件,例如deploy.yml
。
部署脚本解释
- Checkout code:使用
actions/checkout
从GitHub检出代码。 - Setup Node.js:使用
actions/setup-node
安装指定版本的Node.js。 - Install dependencies:运行
npm install
安装项目依赖。 - Run tests:运行项目的测试套件,确保代码无误。
- Deploy to Alibaba Cloud:使用
rsync
将项目文件同步到阿里云服务器,并使用SSH连接到服务器,安装生产依赖并重启PM2管理的应用。
配置GitHub Secrets
为了安全地存储和使用敏感信息,我们需要在GitHub存储库中配置Secrets。导航到你的存储库设置,找到Secrets and variables
,然后添加以下Secrets:
ALICLOUD_HOST
:你的阿里云服务器IP地址。ALICLOUD_USERNAME
:用于SSH连接的用户名。ALICLOUD_SSH_KEY
:你的SSH私钥内容。
总结
通过以上步骤,我们实现了Node.js项目从GitHub到阿里云的自动化部署。GitHub Actions提供了强大的CI/CD功能,而PM2简化了Node.js应用的进程管理。这种自动化部署不仅提高了效率,还减少了手动部署的错误。