Skip to content

GitHub Actions (GitWork) 自动化工作流指南

GitHub Actions 是 GitHub 提供的持续集成/持续部署 (CI/CD) 服务。通过编写简单的 YAML 脚本,你可以实现代码提交即自动测试、打包、部署的全自动化流程。

GitHub CI/CD

什么是 Workflows (工作流)?

Workflows 是你在仓库中定义的可配置的自动化过程。

  • 配置文件位置: 必须存放于 .github/workflows/ 目录下。
  • 格式: .yml.yaml

核心概念

  1. Workflow (工作流): 整个自动化过程,由一个或多个 Job 组成。
  2. Event (触发事件): 触发 Workflow 运行的行为(如 push, pull_request)。
  3. Job (作业): 运行在同一个运行器 (Runner) 上的一组步骤。默认并行运行。
  4. Step (步骤): 具体的执行指令,可以运行 Shell 命令或使用现成的 Action。
  5. Action (动作): 封装好的可重用代码块(如 actions/checkout 用于拉取代码)。

基础语法示例

创建一个 .github/workflows/main.yml 文件:

yaml
name: CI 自动化构建 # Workflow 名称

# 触发条件:当 main 分支有 push 行为时触发
on:
  push:
    branches: [ "main" ]

jobs:
  build-and-test: # Job ID
    runs-on: ubuntu-latest # 运行环境

    steps:
      # 1. 拉取代码
      - name: Checkout code
        uses: actions/checkout@v4

      # 2. 设置 Node.js 环境
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'

      # 3. 安装依赖
      - name: Install Dependencies
        run: npm install

      # 4. 运行测试/构建
      - name: Build
        run: npm run build

常用的 GitHub Actions

GitHub Marketplace 可以找到成千上万个现成的 Action。

  • actions/checkout: 拉取仓库代码。
  • actions/setup-node: 安装 Node.js。
  • cloudflare/wrangler-action: 部署 Cloudflare Workers。
  • peaceiris/actions-gh-pages: 部署静态网页到 GitHub Pages。

环境变量与 Secrets

不要在代码中硬编码密码!使用 GitHub Secrets 来存储敏感信息。

  1. 设置 Secret: 进入仓库 Settings -> Secrets and variables -> Actions -> New repository secret
  2. 在 YAML 中使用: ${{ secrets.MY_API_KEY }}
yaml
      - name: Deploy to Cloudflare
        uses: cloudflare/wrangler-action@v3
        with:
          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}

配合 Cloudflare 或 Vercel 使用

GitWork (GitHub Actions) 能够从代码仓库这端主动触发部署:

  • Cloudflare Workers: 通常需要配置 Action 主动推送代码。
  • Vercel / Cloudflare Pages: 这两者通常提供集成 (Integration) 模式,即你在 Vercel/Cloudflare 仪表盘绑定 GitHub 账号后,它们会自动监听 GitHub 的 Push 事件并拉取构建,不需要你手动编写 .yml 文件(除非你有极其复杂的定制需求)。

更多详细的集成教程,请参考本站的 Cloudflare 和 Vercel 章节。