如何在 GitLab 中标记管道?

Tra*_*994 3 pipeline gitlab

如何在 GitLab 管道运行时添加标签?
当您在主分支上针对不同配置运行一些夜间(计划)管道时,这将非常有用。例如,我们每晚运行一个包含多个子模块的主分支,每个子模块都在其开发过程中的某个点(提交点 SHA)设置,我想将其标记为“MAIN”。我们运行第二个管道,我想将其标记为“HEAD”,这是拉动子模块的所有 HEAD 的结果,以查看更改在合并时是否会破坏主干。
目前它显示:

  • 最后提交消息。
  • 管道#
  • 提交SHA
  • 分店名称
  • “已安排”

这很有帮助,但很难区分它们,因为只有管道 # 在管道之间发生变化。

Tra*_*994 5

我有好消息!!
我们在 GitLab 的朋友一直在研究这个功能。现在,在版本 15.5.1-ee.0 中,有一种方法可以标记管道!

它使用带有新关键字名称的工作流程控件

workflow:
    name: 'Pipeline for branch: $CI_COMMIT_BRANCH'
Run Code Online (Sandbox Code Playgroud)

您甚至可以使用工作流程:规则对为管道指定不同的名称:

variables:
    PIPELINE_NAME: 'Default pipeline name'

workflow:
    name: '$PIPELINE_NAME'
rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
       variables:
           PIPELINE_NAME: 'MR pipeline: $CI_COMMIT_BRANCH'
    - if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby3/'
       variables:
           PIPELINE_NAME: 'Ruby 3 pipeline'
Run Code Online (Sandbox Code Playgroud)

在这里找到文档: https: //docs.gitlab.com/ee/ci/yaml/#workflow

这个功能在 15.5 中默认被禁用,因为它太新了。您可以启用名为pipeline_name
的功能标志。

请参阅此链接以启用:https://docs.gitlab.com/ee/administration/feature_flags.html
(您需要使用 Rails Console 来启用它。非常简单。)

注意:请记住,workflow关键字会影响整个管道实例。


Von*_*onC 5

这似乎得到了GitLab 15.7 的官方支持(2022 年 12 月)

将自定义名称添加到管道中workflow:name:

对于某些项目,可以将相同的管道配置为针对不同的变量或条件以不同的方式运行,从而为成功的管道创建非常不同的结果。
您可能很难确定运行的是哪个版本的管道,因为没有关于用于该特定运行的输入的指示。
虽然标签喜欢scheduledAPI有帮助,但有时仍然很难识别特定的管道。

现在,您可以使用关键字设置管道名称,workflow:name以便通过字符串、CI/CD 变量或两者的组合更好地识别管道。

请参阅文档问题

笔记:

如果名称为空字符串,则不会为管道分配名称。
如果所有变量也为空,则仅由 CI/CD 变量组成的名称的计算结果可能为空字符串。


并且,自GitLab 16.3(2023 年 8 月)以来:

将管道名称公开为预定义的 CI/CD 变量

workflow:name现在可以通过预定义变量访问使用关键字定义的管道名称$CI_PIPELINE_NAME

https://about.gitlab.com/images/16_3/workflow-name-image.png -- 将管道名称公开为预定义的 CI/CD 变量

请参阅文档问题