gitlab 规则,如果提交消息不包含 WIP

Joh*_*ohn 1 gitlab gitlab-ci

我只需要在提交消息不包含WIP并且分支是功能分支时运行管道..但是无论我做什么,它要么不运行,要么像下面一样总是运行

我在兜兜转转;这是我最后的努力,这对我来说似乎很有意义,但无论提交消息说什么都会触发:/

stages:
  - stage
  - sprint
# -------------------------------------------------------------------

sprint:
  stage: sprint
  allow_failure: false
  image: node:lts
  script:
    - echo 'stuff'
  rules:
    - if: '$CI_COMMIT_BRANCH=~ /^feature(.?)*/ && $CI_COMMIT_MESSAGE  != /^WIP(.?)*/'
      when: always
Run Code Online (Sandbox Code Playgroud)

And*_*rew 5

您正在使用!=运算符而不是!~匹配正则表达式,所以现在它需要您按字面意思使用 CI_COMMIT_MESSAGE 正则表达式。

有关详细信息,请参阅https://docs.gitlab.com/ee/ci/yaml/#common-if-clauses-for-rules

  • 似乎 gitlab 不支持这种正则表达式,这有效: - if: '$CI_COMMIT_MESSAGE=~/^[^WIP]/ && $CI_COMMIT_BRANCH =~ /^feature(.?)*/' (2认同)