GitLab CI工作流程标签中的逻辑与

时间:2020-08-12 10:24:43

标签: git continuous-integration gitlab gitlab-ci

仅当提交消息在[]括号内包含某些信息并且触发源为push事件时,我才想创建管道。为此,我写了

workflow:
    rules:
        - if: $CI_COMMIT_MESSAGE =~ /\[[^\[\]]*?\]\n/ && $CI_PIPELINE_SOURCE == 'push'
        - when: never

但是它似乎忽略了源代码部分,因为如果我尝试通过API调用触发管道,则最后一次提交包含[ ]时它将通过。仅当提交消息不满足正则表达式时,才会拒绝API调用,但就我而言,应该始终将其阻止。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

when: never指定何时不创建管道。您只需要使用when: always,但是由于这是默认设置,因此无需指定它。另外,在条件语句周围使用引号。试试这个:

workflow:
    rules:
        - if: '$CI_COMMIT_MESSAGE =~ /\[[^\[\]]*?\]\n/ && $CI_PIPELINE_SOURCE == "push"'

有关更多信息,请参见workflow:rules