shell - GitLab CI 仅在提交消息与正则表达式不同时才允许作业运行
问题描述
我正在使用 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 。
作业失败,因为用户没有该图像的权限(这就是我想首先阻止作业运行的原因):
解决方案
括号定义捕获组。您必须转义它们以匹配文字括号。
- if: '$CI_COMMIT_BRANCH == "beta" && $CI_COMMIT_MESSAGE !~ /^chore\(release\)/'
推荐阅读
- javafx - 如何使用动画使 JavaFX 滑块旋钮仅移动到刻度线?
- android - React Native:Zoom Android SDK:“startMeetingWithParams”作为参与者开始会议 - 需要它作为主持人开始会议
- javascript - 验证表单上的多个字段
- reactjs - 防止`useEffect`循环
- python - 在带有字符串的列表中搜索数字,以返回数字值
- jquery - 使用 jQuery 和 AJAX 使用 ASP.NET MVC 5 从数据库中的许多文本框中的下拉选择值
- c - 在递归文件扫描功能中使用malloc和free
- apache-kafka - 一个卡夫卡经纪人崩溃了,如何恢复?
- video - 如何使用“overlay_cuda”、ffmpeg 视频过滤器在视频上刻录基于字幕的图像
- javascript - React Native 中的 Redux Toolkit HMR 不会更新 reducer