首页 > 解决方案 > Gitlab CI:提交包含[ci]时触发管道:

问题描述

我已经看到有关如何实现这一点的类似问题,但是我遇到了一些问题,管道永远不会触发。

我只想在[ci]:关键字启动提交消息时触发CI管道,相关的gitlab配置:

- if: '$CI_COMMIT_MESSAGE =~ "/^\[ci\]:.+/"'

我已经尝试在特定作业的规则块中使用它,我已经在workflow:rules顶级声明中尝试过它,结果总是以管道/作业从不触发而告终。

例子:

workflow:
  rules:
    - if: '$CI_COMMIT_MESSAGE =~ "/^\[ci\]:.+/"'

# another variation
workflow:
  rules:
    - if: '$CI_COMMIT_MESSAGE =~ "/^\[ci\]:.+/"'
      when: always
    - when: never

# another variation
# was not combined with the workflow ruleset, that was taken out when
# tested in just the jobs
somejob:
  stage: some-stage
  script: echo "Hello"
  rules:
    - if: '$CI_COMMIT_MESSAGE =~ "/^\[ci\]:.+/"'

我也尝试:在 reg expr 中转义。我确定我在这里遗漏了一些微不足道的东西,但我已经盯着这个太久了,所以任何帮助表示赞赏。

标签: gitgitlabcontinuous-integrationgitlab-ci

解决方案


好吧,对于以后发现此问题的任何人,您都需要&&对其进行正确评估。

workflow:
  rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_MESSAGE =~ /^\[ci\]:.+/'

推荐阅读