返回

使用 Github Action 自动化部署的简单指南

前端

使用 Github Action 自动化部署可以极大地简化您的开发工作流程,让您可以专注于更重要的任务。本指南将带您了解在项目中使用 Github Action 自动化部署的逐步说明,同时提供实际示例和最佳实践。

为什么使用 Github Action 自动化部署?

  • 提高效率: 自动化部署流程,省去手动部署的繁琐工作。
  • 减少错误: 通过自动化,您可以消除人为错误的风险,从而提高部署的可靠性。
  • 提升一致性: 确保所有部署遵循相同的流程,无论部署人员是谁。
  • 节省时间: 自动化部署释放您的时间,让您可以专注于其他开发任务。
  • 提高代码质量: 自动化部署可以帮助您在部署代码之前识别问题,从而提高代码质量。

先决条件

  • Github 帐户
  • Github Action 启用的项目
  • 部署目标(例如,服务器、云平台)

逐步说明

1. 创建 Github Action 工作流程文件

在项目根目录中,创建一个名为 .github/workflows/deploy.yml 的文件。此文件将定义您的自动化部署工作流程。

2. 定义触发器

触发器指定何时运行工作流程。对于部署,您通常需要在推送到特定分支(例如 mainproduction) 时触发工作流程。

on:
  push:
    branches:
      - main
      - production

3. 定义作业

作业是工作流程中执行特定任务的单元。对于部署,您需要定义一个用于部署代码的作业。

jobs:
  deploy:

4. 指定部署任务

deploy 作业中,您可以指定用于部署代码的特定任务。这些任务通常包括:

  • 安装依赖项: run: npm install
  • 构建应用程序: run: npm build
  • 部署应用程序: run: scp -r build/* username@ip-address:/var/www/html

5. 设置秘密

如果部署需要访问敏感信息(例如,SSH 密钥或密码),您可以在 Github Actions 中设置秘密以安全地存储这些信息。

6. 部署到服务器

确保您的服务器已准备就绪,并配置了 SSH 密钥或其他必要的凭据。

示例工作流程文件

以下是一个将代码部署到服务器上的示例工作流程文件:

name: Deploy

on:
  push:
    branches:
      - main
      - production

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: npm install
      - run: npm build
      - run: scp -r build/* username@ip-address:/var/www/html

最佳实践

  • 使用不同的环境: 创建用于不同环境(例如,开发、测试和生产)的不同工作流程。
  • 使用变量: 存储部署目标和其他可配置值,以提高工作流程的可重用性。
  • 记录部署: 使用 Github Actions 的注释记录部署详细信息,以便于进行故障排除。
  • 监视部署: 设置警报以监视部署状态,并在出现问题时通知您。
  • 持续集成/持续交付 (CI/CD): 将自动化部署与 CI/CD 管道相结合,实现代码更改的自动构建、测试和部署。

故障排除

  • 验证 SSH 密钥: 确保已正确设置 SSH 密钥,并且可以从 Github Actions 访问服务器。
  • 检查防火墙设置: 确保服务器的防火墙允许来自 Github Actions 的连接。
  • 查看工作流程日志: 在 Github Actions 中查看工作流程日志,以识别和解决部署错误。
  • 检查代码: 确保您正在尝试部署的代码已正确构建和准备就绪。