素材阁

GitLab CI 速查

共 26 条 GitLab CI 语法与命令,覆盖基本结构、触发与依赖、缓存与产物、变量、Runner 五组场景。yml 片段写成多行便于阅读,点击即可复制完整片段。

基本结构

.gitlab-ci.yml 的骨架。

关键字 / 命令说明
声明流水线阶段及其顺序
定义一个作业及其所属阶段与脚本
指定作业使用的容器镜像
每个作业前统一执行的命令
每个作业后执行的命令(失败也会执行)
继承一个模板作业 / 片段,减少重复

触发与依赖

控制作业何时运行、依赖关系。

关键字 / 命令说明
按条件决定是否运行(推荐替代 only/except)
旧写法:只在指定分支 / 标签运行
手动触发(如生产部署)
声明依赖,可让作业不按阶段顺序提前执行(DAG)
只下载指定作业的产物
该作业失败不影响流水线成功
指定由哪个(带标签的)Runner 执行

缓存与产物

加速构建与传递文件。

关键字 / 命令说明
按分支缓存依赖目录,加速后续构建
保存产物供后续阶段或下载
产物保留时间
上传测试报告,在 MR 里展示

变量

配置与密钥。

关键字 / 命令说明
在 yml 中定义变量
内置变量:提交哈希 / 分支名
在界面配置受保护变量(密钥不要写进 yml)
标记部署环境,便于追踪与回滚

Runner

注册与管理执行器。

关键字 / 命令说明
交互式注册一个新的 Runner
列出已注册的 Runner
前台运行 Runner(调试用)
本地执行某个作业(需在仓库目录)
重启 Runner 服务

使用说明

GitLab CI 速查:.gitlab-ci.yml 结构、触发与依赖、缓存产物、变量与 Runner;支持搜索与分类筛选,yml 片段可整段复制。

  1. 按用途点分类:基本结构、触发与依赖、缓存与产物、变量、Runner。
  2. yml 片段以多行展示,点「关键字 / 命令」列即可复制完整片段到 .gitlab-ci.yml。
  3. 小项目先掌握 stages + job + script + artifacts 即可跑通;再按需加 rules 与 cache。
  4. Runner 用 gitlab-runner register 注册,或在界面配置。

常见问题

rules 和 only/except 用哪个?
优先用 rules:它语法更清晰、支持复杂条件(if / changes / exists),是官方推荐写法;only/except 属旧语法,新项目不必再用。
cache 和 artifacts 有什么区别?
cache 用于「加速」(如缓存 node_modules,跨流水线复用,不保证一定命中);artifacts 用于「传递给后续阶段或下载」(如构建产物、测试报告),会被保存到流水线里。
密钥能写进 yml 吗?
不能。应在「Settings → CI/CD → Variables」里配置受保护变量(可设为 masked / protected),yml 里通过环境变量引用,避免密钥泄露到仓库与日志。
needs 有什么用?
needs 让作业不必等前面所有阶段完成,只要有它依赖的作业跑完就能开始(DAG 流水线),能显著缩短总时长。

延伸阅读

相关工具