核心概念
- Workflow:一个自动化流程,定义在
.github/workflows/*.yml。 - Job:一组串行步骤,可并行多个 Job。
- Step:具体命令或 Action。
- Runner:执行环境(GitHub 托管的 ubuntu/macos 或自托管)。
一个 Node 项目的最小流水线
name: CI
on:
push:
branches: [main]
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: npm ci
- run: npm run lint
- run: npm test
- run: npm run build
用缓存加速依赖安装
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm # 自动缓存 ~/.npm
对 pnpm / yarn 同样支持 cache: pnpm。
用 Secrets 管理凭据
仓库 Settings → Secrets 中配置,workflow 里引用:
- name: Deploy
env:
SSH_KEY: ${{ secrets.SSH_KEY }}
run: ./deploy.sh
切勿把密钥写死在代码或日志里,GitHub 会自动对 secret 打码。
多环境发布
用 environment 区分 staging / production,并可配置审批:
deploy-prod:
needs: build
environment: production
runs-on: ubuntu-latest
steps:
- run: ./deploy.sh prod
小结
GitHub Actions 的优势是零基础设施、YAML 即代码、与仓库深度集成。小团队用它做 lint+test+build 几乎零成本,规模上来后再引入矩阵构建与自托管 Runner。
流水线的第一原则:能自动化的就不要手动。一次配置,长期受益。