繁体   English   中英

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

[英]Logical AND in GitLab CI workflow tag

仅当提交消息包含 [ ] 括号内的某些信息并且触发源是推送事件时,我才想创建管道。 为了实现这一点,我写了

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

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

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

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

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

有关详细信息,请参阅工作流:规则

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM