为什么用 GitHub Actions 做 CI
CI 确保每个代码变更在合并前通过质量检查。GitHub Actions 直接在仓库中运行工作流,公共仓库免费,私有仓库也有充足额度。
工作流文件
创建 .github/workflows/ci.yml:
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- run: pnpm install --frozen-lockfile
- run: pnpm lint
分支保护
把 lint、测试和构建设为必需检查,要求拉取请求在最新 main 上通过。缓存依赖以缩短运行时间,并固定 Action 版本或 digest 以保证可复现性。
验证流水线
预期结果:故意引入 lint 错误的拉取请求被阻止合并,修复后通过;main 分支构建成功。检查必需检查状态和日志,确认使用了冻结锁文件安装。