流水线编辑器

  • 引入于 13.8 版本
  • 功能标志移除于 13.10 版本

流水线编辑器是在仓库根目录的 .gitlab-ci.yml 文件中编辑 GitLab CI/CD 配置的主要位置。要访问编辑器,请转到 构建 > 流水线编辑器

从流水线编辑器页面,您可以:

验证 CI 配置

当您编辑流水线配置时,它会根据 GitLab CI/CD 流水线架构不断进行验证。它检查您的 CI YAML 配置的语法,并运行一些基本的逻辑验证。

此验证的结果显示在编辑器页面的顶部。如果您的配置无效,则会显示一条提示以帮助您解决问题:

Errors in a CI configuration validation

Lint CI 配置

note 在极狐GitLab 15.3 中,验证 选项卡取代了 Lint 选项卡。lint 结果包含在成功的流水线模拟中。

要在提交更改之前测试 GitLab CI/CD 配置的有效性,您可以使用 CI lint 工具:

  1. 在左侧导航栏,选择 查找或前往 并找到您的项目。
  2. 选择 构建 > 流水线编辑器
  3. 选择 Lint 选项卡。

此工具会检查语法和逻辑错误,但比编辑器中的自动验证更详细。

结果实时更新。您对配置所做的任何更改都会反映在 CI lint 中。它显示与现有 CI Lint 工具相同的结果。

Linting errors in a CI configuration

Simulate a CI/CD pipeline

  • 自极狐GitLab 15.3 引入。

要查找流水线语法和逻辑问题,您可以在 验证 选项卡中模拟创建极狐GitLab CI/CD 流水线。流水线模拟可以帮助您查找诸如不正确的 rulesneeds 作业依赖项等问题,与CI Lint 工具中的模拟类似。

查看 included CI/CD 配置

  • 引入于 15.0 版本,功能标志名为 pipeline_editor_file_tree。默认禁用。
  • 功能标志删除于 15.1 版本。

您可以在流水线编辑器中查看使用 include 关键字添加的配置。在右上角,选择文件树 ( ),查看所有包含的配置文件的列表。所选文件在新选项卡中打开可供查看。

可视化 CI 配置

要查看您的 .gitlab-ci.yml 配置的可视化,请在您的项目中,转到 构建 > 流水线编辑器,然后选择 可视化 选项卡。可视化显示所有阶段和作业。任何 needs 关系都显示为将作业连接在一起的线,显示执行的层次结构:

CI configuration Visualization

将鼠标悬停在工作上以突出其 needs 关系:

CI configuration visualization on hover

如果配置没有任何 needs 关系,则不会绘制任何线条,因为每个作业仅取决于成功完成前一个阶段。

查看完整配置

  • 查看合并的 YAML 选项卡重命名为 完整配置 于 16.0 版本。

要将完全扩展的 CI/CD 配置作为一个组合文件查看,请转到流水线编辑器的 完整配置 选项卡。此选项卡显示扩展配置,其中:

使用 !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 配置的更改

提交表单出现在编辑器中每个选项卡的底部,因此您可以随时提交更改。

当您对更改感到满意时,添加描述性提交消息并输入分支。分支字段默认为您项目的默认分支。

如果您输入新的分支名称,则会出现 使用这些更改开始新的合并请求 复选框。选择它以在提交更改后启动新的合并请求。

The commit form with a new branch

故障排查

Configuration validation currently not available 消息

此消息是由于流水线编辑器中的语法验证存在问题。当发生一下情况就会出现此问题:

  • 如果系统无法与验证语法的服务通信,则这些部分中的信息可能无法正确显示:

    • 编辑 选项卡上的语法状态(有效或无效)。
    • 可视化选项卡。
    • Lint 选项卡。
    • 完整配置 选项卡。

    您仍然可以处理您的 CI/CD 配置,并提交您所做的更改而不会出现任何问题。一旦服务再次可用,语法验证应立即显示。

  • 使用 include,但包含的配置文件会创建一个循环。例如,.gitlab-ci.yml 包含 file1.yml,其中包含 file2.yml,其中包含 file1.yml,在 file1.ymlfile2.yml 之间创建一个循环。

    删除 include 行之一,消除循环并解决问题。