用途:帮助创建高效的 GitLab CI 流水线,涵盖阶段组织、缓存与部署策略,适用于自动化 GitLab 端 CI/CD、多阶段流水线、配置 GitLab Runner、从 GitLab 部署到 Kubernetes 以及实现 GitOps 工作流。
主要能力:提供基础流水线结构(build/test/deploy 阶段、artifacts、cache、coverage 报告);Docker 构建与推送(docker:24 与 dind 服务、登录镜像仓库、按提交 SHA 与 latest 打标签);多环境部署(用 YAML 锚点复用 kubectl 配置,区分 staging 与 production,生产环境 when: manual);Terraform 流水线(validate/plan/apply,产物传递 tfplan);安全扫描(引入 SAST、依赖扫描、容器扫描模板,以及 trivy 扫描);缓存策略(按分支、全局、按作业分别缓存);动态子流水线(生成 child-pipeline.yml 并用 trigger 触发)。
使用方式:将示例作为内联脚手架,按需替换镜像与命令版本。示例要求使用经过验证的镜像摘要与已安装命令版本、受保护且限定范围的 kubeconfig 与受保护的生产环境;KUBE_CA_FILE 必须指向经过验证的 CI 文件变量。不要从不受信任的合并请求部署,也不要自动授予新凭据。内联示例不依赖外部模板。
最佳实践:使用具体镜像标签(如 node:20 而非 node:latest);合理缓存依赖;用 artifacts 传递构建产物;为生产设置手动门禁;用 environments 跟踪部署;启用合并请求流水线;用流水线计划执行周期性作业;实施安全扫描;用 CI/CD 变量管理密钥;监控流水线性能。
限制:仅在任务明确匹配上述范围时使用;输出不能替代针对具体环境的验证、测试或专家评审;若缺少必要输入、权限、安全边界或成功标准,应停止并请求澄清。相关技能包括 github-actions-templates、deployment-pipeline-design、secrets-management。