CI/CD 实战:GitHub Actions 自动化工作流
GitHub Actions 让 CI/CD 变得简单而强大。从自动测试到自动部署,一切都可以自动化。
基础工作流结构
YAML 格式定义在 .github/workflows/ 目录。核心概念:on(触发条件)、jobs(任务)、steps(步骤)。每个 job 运行在独立的虚拟机上,jobs 之间默认并行执行。
Matrix 构建
使用 strategy.matrix 在多个环境(Node 版本、OS)中并行测试。确保代码在不同环境的兼容性。可以设置 fail-fast: false 让所有组合都完成。
缓存依赖
使用 actions/setup-node 的 cache 选项或 actions/cache 缓存 node_modules。大幅减少安装时间——从几分钟降到几秒。
部署到 Vercel
使用官方 Action 或直接调用 CLI。需要配置 Secrets(VERCEL_TOKEN 等)来安全存储凭证。部署到 production 需要设置 --prod 标志。
Docker 构建与推送
使用 docker/build-push-action 构建和推送镜像到 GitHub Container Registry。多阶段构建优化镜像大小。标签管理使用 git tag 触发版本发布。
安全最佳实践
使用 OIDC 代替长期 Token、设置 GITHUB_TOKEN 最小权限、定期审查 workflow 中使用的外部 Action 版本、使用 Dependabot 自动更新 Action 版本。
总结
CI/CD 的核心价值:自动化测试防止回归、一致的构建环境、快速反馈循环、安全的部署流程。好的 CI/CD 让团队专注于写代码,而不是手动部署。