- 验证 CI 配置
- Lint CI 配置
- Simulate a CI/CD pipeline
- 查看 included CI/CD 配置
- 可视化 CI 配置
- 查看完整配置
- 提交对 CI 配置的更改
- 故障排查
流水线编辑器
- 引入于 13.8 版本
- 功能标志移除于 13.10 版本
流水线编辑器是在仓库根目录的 .gitlab-ci.yml
文件中编辑 GitLab CI/CD 配置的主要位置。要访问编辑器,请转到 构建 > 流水线编辑器。
从流水线编辑器页面,您可以:
- 选择要工作的分支。
- 验证编辑文件时的配置语法。
- 对您的配置进行更深入的 lint,使用添加了
include
关键字的任何配置对其进行验证。 - 查看使用
include
关键字添加的 CI/CD 配置列表。 - 查看当前配置的可视化。
- 查看完整配置,显示添加了
include
的任何配置。 - 提交对特定分支的更改。
验证 CI 配置
当您编辑流水线配置时,它会根据 GitLab CI/CD 流水线架构不断进行验证。它检查您的 CI YAML 配置的语法,并运行一些基本的逻辑验证。
此验证的结果显示在编辑器页面的顶部。如果您的配置无效,则会显示一条提示以帮助您解决问题:
Lint CI 配置
要在提交更改之前测试 GitLab CI/CD 配置的有效性,您可以使用 CI lint 工具:
- 在左侧导航栏,选择 查找或前往 并找到您的项目。
- 选择 构建 > 流水线编辑器。
- 选择 Lint 选项卡。
此工具会检查语法和逻辑错误,但比编辑器中的自动验证更详细。
结果实时更新。您对配置所做的任何更改都会反映在 CI lint 中。它显示与现有 CI Lint 工具相同的结果。
Simulate a CI/CD pipeline
- 自极狐GitLab 15.3 引入。
要查找流水线语法和逻辑问题,您可以在 验证 选项卡中模拟创建极狐GitLab CI/CD 流水线。流水线模拟可以帮助您查找诸如不正确的 rules
和 needs
作业依赖项等问题,与CI Lint 工具中的模拟类似。
查看 included CI/CD 配置
- 引入于 15.0 版本,功能标志名为
pipeline_editor_file_tree
。默认禁用。- 功能标志删除于 15.1 版本。
您可以在流水线编辑器中查看使用 include
关键字添加的配置。在右上角,选择文件树 (),查看所有包含的配置文件的列表。所选文件在新选项卡中打开可供查看。
可视化 CI 配置
要查看您的 .gitlab-ci.yml
配置的可视化,请在您的项目中,转到 构建 > 流水线编辑器,然后选择 可视化 选项卡。可视化显示所有阶段和作业。任何 needs
关系都显示为将作业连接在一起的线,显示执行的层次结构:
将鼠标悬停在工作上以突出其 needs
关系:
如果配置没有任何 needs
关系,则不会绘制任何线条,因为每个作业仅取决于成功完成前一个阶段。
查看完整配置
- 查看合并的 YAML 选项卡重命名为 完整配置 于 16.0 版本。
要将完全扩展的 CI/CD 配置作为一个组合文件查看,请转到流水线编辑器的 完整配置 选项卡。此选项卡显示扩展配置,其中:
- 使用
include
导入的配置被复制到视图中。 - 使用
extends
的作业,扩展配置合并显示到作业。 - YAML 锚点由链接配置替代。
-
YAML
!reference
标签也被链接配置替换。
使用 !reference
标签可能会导致嵌套配置在展开视图中显示多个连字符 (-
)。这是意料之中的,额外的连字符不会影响作业的执行。例如,以下配置和完全扩展的版本都是有效的:
-
.gitlab-ci.yml
file:.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 # <- The extra hyphens do not affect the job's execution. - pyflakes python/ rules: - - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^feature/" # <- The extra hyphens do not affect the job's execution. when: manual allow_failure: true - if: "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" # <- No extra hyphen but aligned with previous rule - - if: $CI_COMMIT_BRANCH == "main" # <- The extra hyphens do not affect the job's execution. when: manual allow_failure: true
提交对 CI 配置的更改
提交表单出现在编辑器中每个选项卡的底部,因此您可以随时提交更改。
当您对更改感到满意时,添加描述性提交消息并输入分支。分支字段默认为您项目的默认分支。
如果您输入新的分支名称,则会出现 使用这些更改开始新的合并请求 复选框。选择它以在提交更改后启动新的合并请求。
故障排查
Configuration validation currently not available
消息
此消息是由于流水线编辑器中的语法验证存在问题。当发生一下情况就会出现此问题:
-
如果系统无法与验证语法的服务通信,则这些部分中的信息可能无法正确显示:
- 编辑 选项卡上的语法状态(有效或无效)。
- 可视化选项卡。
- Lint 选项卡。
- 完整配置 选项卡。
您仍然可以处理您的 CI/CD 配置,并提交您所做的更改而不会出现任何问题。一旦服务再次可用,语法验证应立即显示。
-
使用
include
,但包含的配置文件会创建一个循环。例如,.gitlab-ci.yml
包含file1.yml
,其中包含file2.yml
,其中包含file1.yml
,在file1.yml
和file2.yml
之间创建一个循环。删除
include
行之一,消除循环并解决问题。