如何在 GitLab 管道运行时添加标签?
当您在主分支上针对不同配置运行一些夜间(计划)管道时,这将非常有用。例如,我们每晚运行一个包含多个子模块的主分支,每个子模块都在其开发过程中的某个点(提交点 SHA)设置,我想将其标记为“MAIN”。我们运行第二个管道,我想将其标记为“HEAD”,这是拉动子模块的所有 HEAD 的结果,以查看更改在合并时是否会破坏主干。
目前它显示:
这很有帮助,但很难区分它们,因为只有管道 # 在管道之间发生变化。
我有好消息!!
我们在 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关键字会影响整个管道实例。
这似乎得到了GitLab 15.7 的官方支持(2022 年 12 月)
将自定义名称添加到管道中
workflow:name:对于某些项目,可以将相同的管道配置为针对不同的变量或条件以不同的方式运行,从而为成功的管道创建非常不同的结果。
您可能很难确定运行的是哪个版本的管道,因为没有关于用于该特定运行的输入的指示。
虽然标签喜欢scheduled并API有帮助,但有时仍然很难识别特定的管道。现在,您可以使用关键字设置管道名称,
workflow:name以便通过字符串、CI/CD 变量或两者的组合更好地识别管道。
笔记:
如果名称为空字符串,则不会为管道分配名称。
如果所有变量也为空,则仅由 CI/CD 变量组成的名称的计算结果可能为空字符串。
并且,自GitLab 16.3(2023 年 8 月)以来:
将管道名称公开为预定义的 CI/CD 变量
workflow:name现在可以通过预定义变量访问使用关键字定义的管道名称$CI_PIPELINE_NAME。
| 归档时间: |
|
| 查看次数: |
5059 次 |
| 最近记录: |