用途
本技能用于设计、实现和优化基于 GitHub Actions 的 CI/CD 流水线,覆盖现代 DevOps 实践。适合在以下场景使用:为项目搭建持续集成与部署流水线;自动化构建、测试和部署工作流;实现多环境部署策略(预发布、生产);管理发布自动化与版本控制;配置多平台测试的矩阵构建;使用密钥和 OIDC 保护 CI/CD 流水线;通过缓存和并行化优化流水线性能;在 CI 中构建 Docker 容器化应用;部署到云平台(AWS、Azure、GCP、Vercel、Netlify);使用 Terraform/CloudFormation 实现基础设施即代码;搭建 monorepo CI/CD 模式;创建可复用工作流模板和自定义动作;实现蓝绿、金丝雀、滚动等部署策略;自动化变更日志生成与语义化版本;集成质量门禁与代码覆盖率检查。
核心概念
CI/CD 基础:持续集成(CI)指开发者提交代码后自动构建和测试;持续部署(CD)指测试通过后自动部署到生产;持续交付指保持代码处于可部署状态,生产部署需人工审批。
GitHub Actions 架构:提供与仓库直接集成的事件驱动自动化。工作流是 .github/workflows/ 下的 YAML 文件,定义自动化流程,包含 name(名称)、on(触发事件)、jobs(作业集合)、runs-on(运行环境)等关键组件。作业是在同一运行器上执行的步骤组,支持 needs(依赖)、if(条件执行)、strategy(矩阵构建)、outputs(作业间共享数据)、environment(带保护规则的部署环境)。步骤是作业内的单个任务,类型包括 uses(运行预构建动作)、run(执行 shell 命令)、with(向动作提供输入)、env(设置环境变量)。动作是可复用的代码单元,包括官方动作(如 actions/checkout@v4、actions/setup-node@v4、actions/cache@v4、actions/upload-artifact@v4、actions/download-artifact@v4)和市场动作(如 docker/build-push-action@v5、aws-actions/configure-aws-credentials@v4、codecov/codecov-action@v4、google-github-actions/auth@v2)。
密钥与变量:密钥是加密的敏感数据(API 密钥、凭据、令牌),分为仓库密钥、环境密钥、组织密钥;变量是非敏感配置数据。制品是工作流产生的文件,可供下载或被其他作业使用。
工作流触发器
支持推送事件(可限定分支、路径、标签)、拉取请求事件(可限定类型、分支、忽略路径)、定时任务(cron)、手动触发(workflow_dispatch,可定义输入项)、发布事件以及工作流调用(workflow_call,用于可复用工作流)。
矩阵构建与缓存
矩阵构建可跨多种配置并行运行作业,支持 include(添加特定配置)、exclude(排除特定组合)、fail-fast、max-parallel。缓存策略可加速工作流,包括 Node.js 自动缓存、自定义缓存(actions/cache@v4)以及 Docker 层缓存。
测试策略
涵盖单元测试(快速、隔离,可上传覆盖率)、集成测试(使用 services 启动 PostgreSQL、Redis 等服务并运行数据库迁移)、端到端测试(如 Playwright,上传测试结果)、性能测试(如 Lighthouse CI、负载测试)以及代码质量与 lint(ESLint、Prettier、TypeScript 检查、安全审计、SonarCloud 扫描)。
部署模式
蓝绿部署:维护两个相同环境实现零停机,部署到绿色环境、运行冒烟测试、切换流量、监控,失败时回滚。金丝雀部署:逐步向部分用户发布,先 10% 流量、监控、增至 50%、再监控、全量发布,失败时回滚。滚动部署:顺序更新实例,等待 rollout 完成、验证部署,失败时回滚。多环境部署:先部署到预发布,再经审批部署到生产。
安全最佳实践
密钥管理:使用 GitHub Secrets、环境作用域密钥。OIDC(OpenID Connect):无需长期凭据即可认证,如配置 AWS 凭据(role-to-assume)或 Google Cloud 认证(workload_identity_provider)。
限制
资料未提供该技能的具体安装方式、收费模式、价格、平台支持范围及实际使用效果等信息,暂未提供。