Skip to content

GitHub Actions 入门指南

字数
588 字
阅读时间
3 分钟

什么是 GitHub Actions?

GitHub Actions 是 GitHub 提供的持续集成/持续部署(CI/CD)服务,它可以帮助你自动化软件开发工作流程。通过 GitHub Actions,你可以自动构建、测试和部署你的代码。

基本概念

  1. 工作流(Workflow):自动化流程的配置文件
  2. 事件(Event):触发工作流的具体动作,如 push、pull request 等
  3. 作业(Job):工作流中的一系列步骤
  4. 步骤(Step):作业中的具体任务
  5. 动作(Action):可重用的工作单元

创建第一个工作流

在你的仓库中创建 .github/workflows 目录,然后创建一个 YAML 文件,例如 main.yml

yaml:.github/workflows/main.yml
name: 第一个工作流

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

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - name: 设置 Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'

    - name: 安装依赖
      run: npm install

    - name: 运行测试
      run: npm test

工作流文件说明

  1. name: 工作流的名称
  2. on: 触发工作流的事件
  3. jobs: 要执行的作业
  4. runs-on: 运行环境
  5. steps: 具体执行步骤

常用的 GitHub Actions

  1. checkout: 检出代码
yaml
- uses: actions/checkout@v2
  1. 设置开发环境:
yaml
- uses: actions/setup-node@v2
  with:
    node-version: '14'
  1. 缓存依赖:
yaml
- uses: actions/cache@v2
  with:
    path: ~/.npm
    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}

环境变量和密钥

在 GitHub 仓库的 Settings > Secrets and variables > Actions 中可以设置密钥:

yaml
jobs:
  deploy:
    steps:
      - name: 使用密钥
        env:
          API_KEY: ${{ secrets.API_KEY }}
        run: echo "使用 API 密钥进行部署"

常见使用场景

  1. 自动化测试
yaml
- name: 运行测试
  run: |
    npm install
    npm test
  1. 自动部署
yaml
- name: 部署到生产环境
  if: github.ref == 'refs/heads/main'
  run: |
    npm run build
    npm run deploy
  1. 代码检查
yaml
- name: 运行 ESLint
  run: |
    npm install
    npm run lint

最佳实践

  • 使用具体的版本号而不是 latest
  • 设置超时时间避免作业运行时间过长
  • 善用缓存加快构建速度
  • 使用矩阵构建测试多个环境
  • 合理使用 if 条件控制步骤执行

调试技巧

  • 使用 actions/debug-action@v2 进行调试
  • 查看工作流运行日志
  • 本地测试工作流(使用 act 工具)

贡献者

页面历史