GitLab CI 仅当提交消息与正则表达式不同时才允许作业 运行

GitLab CI allow job run only when commit message differs from regex

我正在使用 GitLab.com。我想 运行 一份工作,当它在 beta 分支上并且提交消息不是以 chore(release) 开头时。这是我的尝试:

# --snip--

release_beta:
  stage:  release
  image: 
    name: <private_image>
    entrypoint:
      - '/usr/bin/env'
      - 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
  before_script:
    - cp $SR_CONFIG_PATH/.releaserc.json .
  script:
    - npx semantic-release
  rules:
    # so we don't trigger a release job when semantic-release pushes the release
    - if: '$CI_COMMIT_BRANCH == "beta" && $CI_COMMIT_MESSAGE !~ /^chore(release)/'

这不起作用,作业总是在 beta 分支上触发。我尝试了 =~ 变体,但它也没有用。我似乎无法使正则表达式测试工作,即使它在文档中提到:https://docs.gitlab.com/ee/ci/jobs/job_control.html#common-if-clauses-for-rules.

作业失败,因为用户没有该图像的权限(这就是我首先要阻止作业 运行ning 的原因):

括号定义捕获组。您必须转义它们以匹配文字括号。

- if: '$CI_COMMIT_BRANCH == "beta" && $CI_COMMIT_MESSAGE !~ /^chore\(release\)/'