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\)/'
我正在使用 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\)/'