文章目录

CI/CD 基础:GitHub Actions 配置

发布于 2026-04-06 14:54:48 · 浏览 16 次 · 评论 0 条

CI/CD 基础:GitHub Actions 配置

GitHub Actions 是 GitHub 提供的自动化平台,能够将代码的构建、测试和部署过程自动化。通过配置 YAML 文件,开发者可以定义工作流,实现持续集成(CI)和持续部署(CD)。


核心概念解析

在编写配置文件前,需理解三个核心概念:

  1. Workflow(工作流):一个完整的自动化流程,配置在一个 YAML 文件中。
  2. Job(任务):工作流中的一个独立执行单元,包含多个步骤。默认情况下,不同 Job 之间并行执行。
  3. Step(步骤):Job 中的具体操作,可以是执行命令或引用外部脚本。

它们之间的层级关系如下:

graph TD A["Workflow (工作流)"] --> B["Job 1 (任务)"] A --> C["Job 2 (任务)"] B --> D["Step 1: Checkout"] B --> E["Step 2: Build"] B --> F["Step 3: Test"] C --> G["Step 1: Deploy"]

步骤 1:创建配置文件

GitHub Actions 的配置文件必须存放在仓库的特定目录下。

  1. 打开 GitHub 仓库页面。
  2. 点击 Add file 按钮,选择 Create new file
  3. 输入 文件路径 .github/workflows/main.yml
    • .github 是隐藏目录。
    • workflows 是必须的子目录名。
    • main.yml 是文件名,可自定义,但后缀必须是 .yml.yaml

步骤 2:定义工作流名称和触发条件

文件创建后,需定义该工作流的名称以及何时运行。

  1. 输入 name 字段定义名称。
  2. 输入 on 字段定义触发条件。
name: CI Pipeline

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

此配置表示:当 main 分支有代码推送或提交 Pull Request 时,自动触发工作流。


步骤 3:配置任务和运行环境

jobs 字段下定义具体的任务。

  1. 输入 jobs 字段。
  2. 定义 任务名称(如 build)。
  3. 指定 运行环境 runs-on
jobs:
  build:
    runs-on: ubuntu-latest

runs-on 指定了虚拟机的操作系统,常用选项包括 ubuntu-latest(Linux)、windows-latest(Windows)和 macos-latest(macOS)。


步骤 4:编写具体执行步骤

在任务中通过 steps 定义执行顺序。每个步骤可以是直接运行命令,也可以引用现成的 Action。

  1. 引用 官方检出代码的 Action actions/checkout
  2. 执行 环境配置命令(如设置 Node.js)。
  3. 运行 安装依赖和构建命令。
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: Install dependencies
        run: npm install

      - name: Build project
        run: npm run build
  • uses:引用他人编写好的 Action。
  • run:直接在终端执行命令行指令。

步骤 5:管理敏感信息

在 CI/CD 过程中,常需使用密码或 Token 等敏感数据。严禁将这些信息直接写入代码,应使用 GitHub Secrets。

  1. 进入 仓库的 Settings 页面。
  2. 点击 左侧菜单 Secrets and variables 下的 Actions
  3. 点击 New repository secret 按钮。
  4. 输入 名称(如 API_KEY)和对应的值。
  5. 点击 Add secret 保存。

在 YAML 文件中,通过上下文变量引用:

      - name: Deploy to Server
        env:
          API_KEY: ${{ secrets.API_KEY }}
        run: |
          echo "Deploying with key..."
          # 这里执行真实的部署脚本
```

---

### 步骤 6:使用矩阵构建

若需在多个版本或操作系统上同时测试,可使用矩阵策略。

1.  **添加** `strategy.matrix` 配置。
2.  **定义** 变量数组。

```yaml
jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest]
        node: [18, 20]
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node }}
      - run: npm test

此配置会自动生成 4 个并行任务(2 个操作系统 × 2 个 Node 版本),极大提高测试效率。


常用字段速查表

以下为配置中高频使用的字段说明:

字段名 作用 示例值
name 工作流或步骤的显示名称 CI Pipeline
on 触发条件 push, schedule
runs-on 虚拟机操作系统 ubuntu-latest
needs 定义任务依赖关系(顺序执行) needs: [build]
env 设置环境变量 NODE_ENV: prod
if 条件判断,满足条件才执行 if: success()

完整示例配置

以下是一个包含检出代码、安装依赖、运行测试及打包的完整配置示例:

name: Full CI Flow

on:
  push:
    branches: [ "main" ]

jobs:
  build-and-test:
    runs-on: ubuntu-latest

    steps:
      - name: 1. Checkout Repository
        uses: actions/checkout@v4

      - name: 2. Setup Node Environment
        uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: 'npm'

      - name: 3. Install Dependencies
        run: npm ci

      - name: 4. Run Linter
        run: npm run lint

      - name: 5. Run Tests
        run: npm test

      - name: 6. Build Artifacts
        run: npm run build

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文