CI/CD 工具

GitLab CI 编辑器:先看规则,再推送

贴入 .gitlab-ci.yml,设定模拟上下文,再检查作业、变量引用和你提供的本地文件。

GitLab CI 编辑器

CI YAML

结果

分析仅在当前浏览器运行,不发送到 GitLab。

选项

模拟上下文

本地 include 文件

只有此处提供的文件可解析;远端 include 保持未判定。

尚未分析;运行分析以查看这份 YAML。

调试流水线时,YAML 能解析不代表作业会进入运行列表。GitLab CI 编辑器让你先看阶段引用、规则命中和缺少的本地文件,减少反复提交试错。

这里的 GitLab CI YAML 校验只覆盖明确支持的结构。真实项目的权限、仓库文件和 GitLab 版本仍需在官方 CI Lint 中核对。

为什么用 GitLab CI 编辑器

把规则的跳过与无法判定分开看。

每个作业都有判定依据

GitLab CI 编辑器按输入的分支与来源预览规则。没有 diff 时,rules:changes 会显示未判定,不会误说作业必定跳过。

左侧的 YAML 作业规则连到纳入、跳过和未判定三种状态。

只解析用户给出的文件

手动附加路径完全匹配的 include:local 文件后,可检查其中的作业;缺失文件会被标出来,不会被当成空配置。

两张 YAML 文件卡由本地路径连接,缺失文件位置显示断开的连接。

先设上下文,再读结果

01

改掉演示分支

默认 push 和 main 只是示例。检查合并请求时,先改流水线来源与分支,否则 GitLab CI rules 测试看的不是你的情境。

02

补上准确的本地路径

include:local 需要同时给出路径和内容。浏览器不会自动读取仓库,也不会下载远端模板。

03

区分三类结论

YAML 解析、结构诊断和规则预览回答不同问题。改动变量后结果立即过期,可用 Ctrl/Cmd+Enter 再分析。

把配置中的线索放在一起

保留输入的格式化

作为 .gitlab-ci.yml 格式化工具,输出使用两空格缩进,原文不被覆盖,注释在可保留时继续保留。

常见结构检查

GitLab CI YAML 校验会检查阶段、作业执行入口、规则列表形状和本地 needs 引用,覆盖范围会明确标示。

显式规则预览

GitLab CI rules 测试按首条命中原则处理受支持的 if 条件;文件变化等缺上下文的条件保留未判定。 支持变量是否存在、==、!=、&&、|| 和括号;正则表达式保留未判定。

变量定义与引用

GitLab CI 变量提取列出本地定义和 $NAME 引用;没有本地值不等于项目设置里不存在。

本地预览的真实边界

不是 GitLab 服务端模拟
GitLab CI 编辑器不创建流水线、不执行脚本,也不知道实例版本。最终结果要用项目里的 CI Lint 确认。
缺仓库信息就不判断
rules:changes 和 rules:exists 需要文件列表或差异;没有输入这些上下文时,本工具不把未知当作 false。
只处理显式本地 include
仅当你给出匹配路径和内容时解析 include:local;project、remote、template 和 component 不会抓取。
变量可能来自外部
未在当前 YAML 或模拟上下文定义的变量,仍可能由项目、群组或实例提供。
不自动修改原文
格式化只写入结果区。复制或下载前可对照原始输入。

GitLab CI 编辑器常见问题

.gitlab-ci.yml 怎样在推送前校验?

先用 GitLab CI 编辑器检查本地支持的语法与结构,再在真实项目的 CI Lint 中做权威校验;本站不会连接你的项目。

GitLab CI 的 rules 为什么没有命中?

本地预览仅对受支持的 if 条件按顺序判断。缺少仓库文件、diff 或 GitLab 服务端上下文时会显示未判定。

include:local 找不到文件怎么排查?

在选项中填准确的 include:local 路径并贴入文件内容。路径未附加时会提示缺失,不能凭主文件推断。

为什么 job 变量不能用于 rules 判断?

作业级变量未必能在创建流水线的规则阶段使用。应核对变量来源,并以 GitLab CI Lint 的结果为准。

如何查看 CI 配置引用了哪些变量?

分析后打开变量页查看 $NAME 引用和本地定义。未定义只表示当前输入里没有,不代表运行时一定缺失。

发现某个 workflow 被判错了?

用 GitLab CI 编辑器检查草稿

返回 GitLab CI 编辑器核对未判定项,再到真实 GitLab 项目验证最终配置。