Jupyter AI

3 GitHub Actions 自动化示例用例

📅 发表日期: 2024年8月15日

分类: ⚙️GitHub Actions 入门

👁️阅读: --

在上篇文章中,我们讨论了 GitHub Actions 的优势,如减少手动操作,提高持续集成与持续部署(CI/CD)的效率等。本篇文章将通过具体的示例来展示 GitHub Actions 的不同用例,以帮助您更好地理解和利用这一强大的工具。接下来,我们将探索几种常见的自动化场景,并通过代码示例具体说明如何实现这些场景。

用例一:自动化测试

GitHub Actions 的一个典型用例是自动化测试。每当代码推送到主分支或创建 pull request 时,我们都可以触发测试,从而确保代码的质量。

示例代码:

以下是一个基础的工作流配置文件,功能是在每次代码推送时运行测试。

name: CI

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  test:
    runs-on: ubuntu-latest
    
    steps:
      - name: 检出代码
        uses: actions/checkout@v2
      
      - name: 设置 Node.js 环境
        uses: actions/setup-node@v2
        with:
          node-version: '14'
      
      - name: 安装依赖
        run: npm install
      
      - name: 运行测试
        run: npm test

这个示例定义了一个名为 CI 的工作流。当代码推送或创建 pull request 至 main 分支时,它将自动运行并进行以下步骤:

  1. 使用 actions/checkout 检出代码。
  2. 使用 actions/setup-node 设置 Node.js 环境。
  3. 通过 npm install 安装项目依赖。
  4. 运行 npm test 进行测试。

用例二:自动部署

另一个非常常见的用例是自动化部署。通过 GitHub Actions,我们可以在代码合并到主分支后,自动将应用程序部署到服务器或云服务上。

示例代码:

下面是一个自动部署到 AWS S3 的工作流示例:

name: Deploy to S3

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    
    steps:
      - name: 检出代码
        uses: actions/checkout@v2
      
      - name: 设置 AWS CLI
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: us-east-1
      
      - name: 部署到 S3
        run: |
          aws s3 sync ./dist s3://your-bucket-name

在这个示例中,当代码推送到 main 分支时,它会:

  1. 同样先使用 actions/checkout 检出代码。
  2. 使用 aws-actions/configure-aws-credentials 设置 AWS CLI 的凭据。
  3. 通过 aws s3 sync 命令将构建后的文件从 ./dist 目录同步到指定的 S3 存储桶中。

记得将 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 添加到您的 GitHub 仓库的 Secrets 中,以确保安全性。

用例三:定时生成文档

我们也可以使用 GitHub Actions 定期生成项目文档。例如,可以设置一个工作流每周生成一次项目的文档,以便团队随时查看最新的更新。

示例代码:

以下是一个基于 GitHub Actions 每周生成文档的示例:

name: Generate Documentation

on:
  schedule:
    - cron: '0 0 * * 0'  # 每周日 00:00 UTC

jobs:
  build-docs:
    runs-on: ubuntu-latest
    
    steps:
      - name: 检出代码
        uses: actions/checkout@v2
      
      - name: 安装依赖
        run: npm install
      
      - name: 生成文档
        run: npm run docs

在这个示例中,我们设置了一个 cron 计划,使得每周日的零点(UTC)触发文档的生成。工作流的步骤与前面的示例类似,主要是更新内容并通过命令生成最新文档。

结语

通过以上的示例,我们展示了 GitHub Actions 的几种常见用例,包括自动化测试、自动部署和文档生成。这些用例不仅提高了开发效率,还确保了代码质量和项目的持续更新。在下一篇文章中,我们将介绍如何创建第一个工作流,帮助您更深入地了解 GitHub Actions 的使用。希望这些示例能给您带来启发,利用 GitHub Actions 来提升您的工作效率!

⚙️GitHub Actions 入门 (滚动鼠标查看)