Skip to content

GitHub Actions 是 GitHub 提供的持续集成和持续交付 (CI/CD) 平台,允许开发者自动化软件开发工作流程(如构建、测试、部署等)。它直接集成在 GitHub 仓库中,无需依赖第三方工具即可实现自动化操作。

核心概念

工作流 (Workflow)

  • 一个自动化的流程,由 YAML 文件定义(存放在  .github/workflows/  目录下)。
  • 可以响应特定事件(如代码推送、Pull Request、定时任务等)。

事件 (Event)

  • 触发工作流的动作,例如:
    • push(代码推送)
    • pull_request(PR 创建或更新)
    • schedule(定时任务)
    • 手动触发 (workflow_dispatch)。

任务 (Job)

  • 一个工作流包含多个任务,每个任务由一系列步骤组成。
  • 任务可以并行或顺序执行,运行在指定的虚拟机或容器中。

步骤 (Step)

  • 单个任务中的具体操作,可以是:
    • 运行命令(如  npm install)
    • 使用预定义的操作(如  actions/checkout@v4)。

操作 (Action)

  • 可重用的代码单元,用于简化流程(如拉取代码、设置 Node.js 环境等)。
  • 可以从 GitHub Marketplace 获取现成的 Action。

核心功能

自动化测试

  • 代码提交后自动运行测试,确保代码质量。

自动部署

  • 将应用部署到服务器、云平台(如 AWS、aliyun)或包仓库(如 npm)。

定时任务

  • 定期执行清理数据、备份等操作。

多环境支持

  • 支持 Linux、Windows、macOS 等操作系统。

丰富的生态系统

  • 数千个预构建的 Action 可直接使用(如 Docker 构建、Slack 通知等)。

简单示例

以下是一个工作流文件,在每次代码推送到  main  分支时运行 Node.js 项目的测试:

css
name: Node.js CI

on:
  push:
    branches: ["main"]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4      # 拉取代码
      - uses: actions/setup-node@v4    # 设置 Node.js 环境
        with:
          node-version: 20
      - run: npm install              # 安装依赖
      - run: npm test                 # 运行测试

工作流模板

GitHub Marketplace: tools to improve your workflow

image.png

知识是财富,分享是快乐!