GitLab CI 管道模式
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/gitlab-ci-patterns。
技能介绍
你在解决什么问题
GitLab 项目一旦要跑自动化测试、镜像构建和多环境发布,.gitlab-ci.yml 很容易变成「阶段堆叠 + 复制粘贴 job」:缓存键不合理、产物没串起来、生产部署缺少门禁,MR 管道和定时任务也常被漏配。本技能聚焦 GitLab CI/CD 管道模式,帮助你在 GitLab Runner 与(可选)Kubernetes / GitOps 场景下,把阶段划分、构建推送和部署策略写清楚。
技能如何帮你落地
使用时应先 明确目标、约束和必需输入,再按模式套用并 验证结果(可对照 resources/implementation-playbook.md 中的示例)。核心覆盖包括:
- 基本管道结构与 多阶段 编排
- Docker 构建与推送、多环境部署、Terraform 管道
- 安全扫描、缓存策略、动态子管道
- 从 GitLab 部署到 Kubernetes、实现 GitOps 工作流 的典型做法
仓库内可参考 assets/gitlab-ci.yml.template 完整模板,以及 references/pipeline-stages.md 中的阶段组织模式。实践上建议:镜像用固定标签(如 node:20,避免 latest)、用 artifacts 传递构建输出、CI/CD 变量 存 secrets、environments 跟踪部署、生产 手动审批,并开启 合并请求管道 与必要的 管道计划。
适用边界
任务与 GitLab CI 模式无关,或你需要本技能范围外的工具与领域时,不要使用。若主战场是 GitHub Actions,可对照相关技能 github-actions-templates;架构层面可看 deployment-pipeline-design,secrets 治理可看 secrets-management。
使用场景
- 单体 `.gitlab-ci.yml` 里测试、Docker 构建与推 registry 混在一起,需要按阶段拆分并设计依赖缓存与 artifacts 传递。
- 合并请求要自动跑单元测试与安全扫描,结果可见且通过后才允许合入受保护分支。
- 构建产物需从 GitLab CI 发布到 dev/staging/prod 多套 Kubernetes,生产部署要手动审批并记录 environment。
- 基础设施变更要走 Terraform plan/apply,并希望与 GitLab 多环境部署、子管道或 GitOps 流程对齐。
适合人员
- 维护公司 GitLab 与共享 Runner/模板的平台工程师,要收敛各仓库管道结构与缓存、变量用法。
- 负责多个 GitLab 微服务仓库的技术负责人,希望 MR 管道、产物传递与发布门禁在各项目间一致。
- 对接 GitLab 与 Kubernetes/GitOps 的 SRE,需要理清 deploy job、`environments` 与多环境 promote 策略。
- 在 GitLab 上落地 Docker 构建、依赖缓存与安全扫描阶段的 DevOps 工程师,避免复制粘贴整段 job。