首页
/ GitHub Actions 速查清单:自动化工作流核心指南

GitHub Actions 速查清单:自动化工作流核心指南

2025-05-16 03:17:05作者:幸俭卉

GitHub Actions 是 GitHub 提供的持续集成和持续交付(CI/CD)平台,允许开发者直接在 GitHub 仓库中自动化构建、测试和部署流程。这份速查清单将帮助你快速掌握 GitHub Actions 的核心概念和常用操作。

基础概念

  1. 工作流(Workflow):自动化流程的顶层概念,由 YAML 文件定义,存储在仓库的 .github/workflows 目录中
  2. 事件(Event):触发工作流运行的特定活动,如 push、pull request 等
  3. 作业(Job):工作流中的一组步骤,在同一个运行器上执行
  4. 步骤(Step):作业中的单个任务,可以运行命令或执行操作
  5. 操作(Action):可重用的代码单元,用于简化工作流创建

常用事件触发器

on:
  # 推送到特定分支时触发
  push:
    branches: [ "main" ]
  
  # 创建 pull request 时触发
  pull_request:
    branches: [ "main" ]
  
  # 定时触发
  schedule:
    - cron: '0 0 * * *'
  
  # 手动触发
  workflow_dispatch:

核心语法结构

name: 工作流名称

on: [事件]

jobs:
  作业ID:
    runs-on: 运行环境
    steps:
      - name: 步骤名称
        uses: 操作名称@版本
        with:
          参数名: 参数值

常用运行环境

  • ubuntu-latest:最新版 Ubuntu
  • windows-latest:最新版 Windows
  • macos-latest:最新版 macOS
  • self-hosted:自托管运行器

实用操作示例

  1. 检出代码
- uses: actions/checkout@v3
  1. 设置 Node.js 环境
- uses: actions/setup-node@v3
  with:
    node-version: '16'
  1. 缓存依赖
- uses: actions/cache@v3
  with:
    path: node_modules
    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
  1. 运行测试
- run: npm test

环境变量与密钥管理

env:
  NODE_ENV: production

steps:
  - name: 使用环境变量
    run: echo $NODE_ENV
    
  - name: 使用密钥
    run: echo ${{ secrets.API_KEY }}

矩阵策略

jobs:
  build:
    strategy:
      matrix:
        node-version: [12.x, 14.x, 16.x]
        os: [ubuntu-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}

条件执行

steps:
  - name: 仅在主分支运行
    if: github.ref == 'refs/heads/main'
    run: echo "这是主分支"

工作流间通信

# 发送方
- name: 上传数据
  uses: actions/upload-artifact@v3
  with:
    name: shared-data
    path: data.json

# 接收方
- name: 下载数据
  uses: actions/download-artifact@v3
  with:
    name: shared-data

最佳实践

  1. 为工作流和步骤使用有意义的名称
  2. 将复杂逻辑封装为自定义操作
  3. 使用缓存加速构建过程
  4. 合理设置超时时间
  5. 定期更新使用的操作版本
  6. 使用工作流状态徽章展示构建状态

通过掌握这些核心概念和常用操作,你可以高效地利用 GitHub Actions 自动化你的开发流程,提升团队协作效率。

登录后查看全文
热门项目推荐
相关项目推荐