GitLab 流水线优化器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/gitlab-pipeline-optimizer 到你的 AI 助手中。
技能介绍
当 CI 开始拖慢交付
GitLab 流水线最常见的性能问题是把大量任务塞进同一条串行链里。一个微服务的构建、测试、安全扫描依次执行,即使设置了并行阶段,也没有真正利用 needs 建立依赖关系。结果是每次提交都要等上十几分钟,团队要么减少测试覆盖,要么忍受缓慢反馈。
优化器做了什么
该技能通过 GitLab REST API v4 拉取流水线的运行数据,再结合 .gitlab-ci.yml 的配置结构进行分析。核心工作包括:
- 识别瓶颈阶段:找出耗时最长的 stage 或 job,判断是真实计算量过大还是调度等待
- DAG 依赖配置:用
needs关键字声明任务间的真实依赖,打破 stage 边界让可并行的任务真正并行 - 基于 rules 的任务过滤:在合并请求、定时、手动触发等场景下按规则跳过不必要的工作
典型的优化流程是:读取流水线数据 → 定位关键路径 → 重构依赖关系 → 验证缩短后的耗时。
适用边界
- 需要具有流水线读写权限的 GitLab 访问令牌
- 依赖关系调整后必须在测试环境验证,避免
needs配置错误导致任务被跳过 - 某些串行设计是有意为之(比如硬件资源互斥),不应盲目并行化
使用场景
- 每次 push 后 CI 要跑十几分钟,需要找出是哪个 stage 拖慢了整条流水线
- 任务之间本无强依赖却串行执行,想用 needs 关键字重写 .gitlab-ci.yml 让构建与测试并行
- 合并请求场景只想跑受影响模块的测试,需要按 rules 配置跳过无关任务
- 定期巡检流水线耗时趋势,通过 GitLab REST API v4 拉取运行数据定位变慢的任务
适合人员
- 平台工程工程师:负责维护团队 GitLab 流水线,需要压缩 CI 反馈时间
- DevOps 工程师:流水线越跑越慢,想定位并修复瓶颈 stage
- 后端开发:每次提交后等 CI 太久,希望优化 .gitlab-ci.yml 让任务并行
- SRE:需要通过 API 定期审计流水线耗时,发现资源调度不合理的问题