流水线编辑器
- 版本:免费版、高级版、旗舰版
- 提供方式:GitLab.com、GitLab 自托管、GitLab 专用
流水线编辑器是编辑 GitLab CI/CD 配置的主要场所,位于仓库根目录下的 .gitlab-ci.yml 文件中。要访问编辑器,请转到 构建 > 流水线编辑器。
从流水线编辑器页面,您可以:
- 选择要工作的分支。
- 在编辑文件时验证配置语法。
- 对配置进行更深入的 lint 检查,验证通过
include关键字添加的任何配置。 - 查看 使用
include关键字添加的 CI/CD 配置列表。 - 查看 当前配置的可视化。
- 查看 完整配置,显示包含
include添加的所有配置。 - 提交 更改到特定分支。
验证 CI 配置
在编辑流水线配置时,它会根据 GitLab CI/CD 流水线模式持续进行验证。它会检查 CI YAML 配置的语法,并运行一些基本的逻辑验证。
验证结果显示在编辑器页面顶部。如果验证失败,此部分会显示一个提示来帮助您解决问题:
CI 配置 Lint 检查
在 GitLab 15.3 中,Lint 标签页被 Validate 标签页取代。lint 结果包含在成功的 流水线模拟 中。
要在提交更改之前测试 GitLab CI/CD 配置的有效性,您可以使用 CI lint 工具:
- 在左侧边栏,选择 搜索或跳转至 并找到您的项目。
- 选择 构建 > 流水线编辑器。
- 选择 验证 标签页。
此工具检查语法和逻辑错误,但比编辑器中的自动 验证 更详细。
结果会实时更新。您对配置所做的任何更改都会反映在 CI lint 中。它显示与现有 CI Lint 工具 相同的结果。
模拟 CI/CD 流水线
要在 验证 标签页中查找流水线语法和逻辑问题,您可以模拟创建 GitLab CI/CD 流水线。流水线模拟可以帮助发现诸如不正确的 rules 和 needs 作业依赖之类的问题,类似于 CI Lint 工具 中的模拟。
查看包含的 CI/CD 配置
您可以查看通过 include 关键字添加的配置。在右上角,选择文件树(
)以查看所有包含的配置文件列表。选中的文件会在新标签页中打开供查看。
可视化 CI 配置
要在项目中查看 .gitlab-ci.yml 配置的可视化效果,请转到 构建 > 流水线编辑器,然后选择 可视化 标签页。可视化显示所有阶段和作业。任何 needs 关系都显示为连接作业的线条,展示执行层次结构。
将鼠标悬停在作业上以突出显示其 needs 关系:
如果配置没有任何 needs 关系,则不会绘制任何线条,因为每个作业仅依赖于前一个阶段成功完成。
查看完整配置
要查看完全展开的 CI/CD 配置作为一个组合文件,请转到流水线编辑器的 完整配置 标签页。此标签页显示一个展开的配置,其中:
- 使用
include导入的配置被复制到视图中。 - 使用
extends的作业显示时,扩展配置已合并到作业中。 - YAML 锚点 被替换为链接的配置。
- YAML
!reference标签 也被替换为链接的配置。 - 条件规则被评估为假设默认分支推送事件。
使用 !reference 标签可能导致嵌套配置,在展开视图中显示为行首有多个连字符(-)。这种行为是预期的,额外的连字符不会影响作业的执行。例如,此配置和完全展开的版本都是有效的:
-
.gitlab-ci.yml文件:.python-req: script: - pip install pyflakes .rule-01: rules: - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^feature/ when: manual allow_failure: true - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME .rule-02: rules: - if: $CI_COMMIT_BRANCH == "main" when: manual allow_failure: true lint-python: image: python:latest script: - !reference [.python-req, script] - pyflakes python/ rules: - !reference [.rule-01, rules] - !reference [.rule-02, rules] -
完整配置 标签页中的展开配置:
".python-req": script: - pip install pyflakes ".rule-01": rules: - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^feature/" when: manual allow_failure: true - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" ".rule-02": rules: - if: $CI_COMMIT_BRANCH == "main" when: manual allow_failure: true lint-python: image: python:latest script: - - pip install pyflakes # <- 额外的连字符不影响作业执行。 - pyflakes python/ rules: - - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^feature/" # <- 额外的连字符不影响作业执行。 when: manual allow_failure: true - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" # <- 没有额外连字符,但与前一条规则对齐 - - if: $CI_COMMIT_BRANCH == "main" # <- 额外的连字符不影响作业执行。 when: manual allow_failure: true
提交 CI 配置更改
提交表单出现在编辑器每个标签页的底部,因此您可以随时提交更改。
当您对更改满意时,添加描述性的提交消息并输入分支。分支字段默认为您的项目默认分支。
如果您输入新的分支名称,会出现 使用这些更改启动新的合并请求 复选框。选中它以在提交更改后启动新的合并请求。
编辑器无障碍选项
流水线编辑器基于 Monaco Editor,它具有多个 无障碍功能,包括:
| 功能 | Windows 或 Linux 快捷键 | macOS 快捷键 | 详情 |
|---|---|---|---|
| 键盘导航命令列表 | F1 | F1 | 命令列表,使编辑器更易于在不使用鼠标的情况下使用。 |
| Tab 键捕获 | Control + m | Control + Shift + m | 启用 tab 键捕获,跳转到页面上下一个可聚焦元素,而不是插入制表符。 |
故障排除
无法验证 CI/CD 配置。 消息
此消息是由流水线编辑器中验证语法的问题引起的。当 GitLab 无法与验证语法的服务通信时,可能会发生这种情况。
以下部分的信息可能无法正确显示:
- 编辑 标签页上的语法状态(有效或无效)。
- 可视化 标签页。
- Lint 标签页。
- 完整配置 标签页。
您仍然可以处理您的 CI/CD 配置并提交您所做的更改而不会出现任何问题。一旦该服务再次可用,语法验证应该会立即显示。