GitLab CI 模板库
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/gitlab-ci-template-library。
技能介绍
解决什么问题
当 GitLab CI/CD pipeline 随项目增长时,配置往往散落在多个 .gitlab-ci.yml 文件中:模板重复、触发条件不一致、阶段依赖关系隐式化,最终导致维护成本陡增。团队常见的痛点包括:
- 同一构建逻辑在不同项目中反复复制,无法统一升级;
rules:changes路径过滤规则不统一,导致无关提交也触发 pipeline;needs阶段依赖写死在单一文件中,重构或扩展时难以追踪;- Auto DevOps 的默认行为无法按业务需求精细调整。
技能如何工作
该技能通过三层机制重构 pipeline 配置,核心能力与关键步骤如下:
- 模板化抽象:使用
include:template引入预定义片段,再用extends继承并覆写关键字段,实现「一次定义、多处复用」; - 分层复用:先定义基础模板(如构建、测试阶段),再通过
extends派生项目专属模板,避免直接复制整段配置; - 变更驱动触发:在模板中统一配置
rules:changes,按文件路径模式精确控制哪些变更触发哪些 job; - 依赖编排:通过
needs关键字显式声明阶段间的有向无环图(DAG)依赖,让 GitLab 调度器按依赖关系并行或串行执行; - Auto DevOps 定制:通过 CI/CD 变量覆盖 Auto DevOps 的默认阶段、镜像版本或部署策略,无需修改其内置脚本。
关键步骤可归纳为:
- 规划模板层级(基础模板 → 中间模板 → 项目模板);
- 在基础模板中定义
rules:changes路径模式与通用needs依赖; - 项目级配置通过
extends引用并覆写特定 job 或变量; - 通过 CI/CD 变量注入 Auto DevOps 自定义参数,完成最终 pipeline 组合。
适用边界与注意点
- 模板结构需与 GitLab Runner 版本及
.gitlab-ci.ymlschema 对齐,跨大版本升级时需重新验证extends关键字的兼容性; rules:changes的路径匹配依赖文件路径模式的准确性,过于宽泛的规则可能导致无效 pipeline 触发;needs定义的 DAG 依赖需保持无环,否则 GitLab 调度器将拒绝执行;- Auto DevOps 变量覆盖需谨慎,过度修改可能破坏其内置的部署流程假设。
使用场景
- 多项目团队需复用同一套构建/测试逻辑,避免重复编写 `.gitlab-ci.yml`
- 在包含前端与后端的仓库中,需按代码路径触发差异化 CI 任务
- 重构 CI 流程时需显式声明阶段依赖以实现并行调度
- 希望按业务需求调整 Auto DevOps 的部署阶段或镜像版本
适合人员
- GitLab CI/CD 维护工程师,需要为多项目统一 pipeline 配置
- DevOps 架构师,负责设计可复用的 CI 模板体系
- 后端开发者,需优化代码变更触发 CI 任务的规则
- 平台工程师,负责定制 Auto DevOps 的部署流程