git - Gitlab CI:提交包含[ci]时触发管道:
问题描述
我已经看到有关如何实现这一点的类似问题,但是我遇到了一些问题,管道永远不会触发。
我只想在[ci]:
关键字启动提交消息时触发CI管道,相关的gitlab配置:
- if: '$CI_COMMIT_MESSAGE =~ "/^\[ci\]:.+/"'
我已经尝试在特定作业的规则块中使用它,我已经在workflow:rules
顶级声明中尝试过它,结果总是以管道/作业从不触发而告终。
例子:
workflow:
rules:
- if: '$CI_COMMIT_MESSAGE =~ "/^\[ci\]:.+/"'
# another variation
workflow:
rules:
- if: '$CI_COMMIT_MESSAGE =~ "/^\[ci\]:.+/"'
when: always
- when: never
# another variation
# was not combined with the workflow ruleset, that was taken out when
# tested in just the jobs
somejob:
stage: some-stage
script: echo "Hello"
rules:
- if: '$CI_COMMIT_MESSAGE =~ "/^\[ci\]:.+/"'
我也尝试:
在 reg expr 中转义。我确定我在这里遗漏了一些微不足道的东西,但我已经盯着这个太久了,所以任何帮助表示赞赏。
解决方案
好吧,对于以后发现此问题的任何人,您都需要&&
对其进行正确评估。
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_MESSAGE =~ /^\[ci\]:.+/'
推荐阅读
- distributed - 分布式系统 VS 集中式系统的安全性
- google-apps-script - 我想在我的日期时间行中获得编辑时间戳,但是当我在谷歌脚本中复制/粘贴多行时,我还需要它来时间戳
- python - CSGO Market API 400 错误请求
- javascript - Why is Data not being passed through my Node REST API?
- regex - 使用 htaccess 将特定字符 URL 后的第一个字母转换为大写
- c# - gRPC .NET 5 / C# 项目中的模糊路由异常
- javascript - 使用 3 个已知点在 2 个 3D 笛卡尔坐标系之间进行转换
- excel - VBA - 如何在一张纸中设置多页的打印区域?
- featuretools - 指定原始选项的 Featuretools 文档是错误的?
- redis - 如何从 Redis 数据库获取最新条目,我在其中有时间戳列